Skip to main content
 首页 » 编程设计

python之Django-Cookiecutter无法启动默认项目

2024年09月03日38oomusou

我正在尝试使用 django-cookietter 启动一个新项目,它构建良好,但是当我尝试 docker-compose -f local.yml up 时,它在 django 的服务上给我这个错误:

django_1    |  * Running on http://0.0.0.0:8000/ (Press CTRL+C to quit) 
django_1    |  * Restarting with stat 
': No such file or directorycute 'python 
dj_ekiosk_django_1 exited with code 127 
Gracefully stopping... (press Ctrl+C again to force) 
Stopping dj_ekiosk_postgres_1 ... done 

这是我试图运行的 local.yml 文件(没有任何改变直接来自 cookiecutter 项目)

local.yml 
version: '3' 
 
volumes: 
  local_postgres_data: {} 
  local_postgres_data_backups: {} 
 
services: 
  django: 
    build: 
      context: . 
      dockerfile: ./compose/local/django/Dockerfile 
    image: dj_ekiosk_local_django 
    depends_on: 
      - postgres 
    volumes: 
      - .:/app 
    env_file: 
      - ./.envs/.local/.django 
      - ./.envs/.local/.postgres 
    ports: 
      - "8000:8000" 
    command: /start 
 
  postgres: 
    build: 
      context: . 
      dockerfile: ./compose/production/postgres/Dockerfile 
    image: dj_ekiosk_production_postgres 
    volumes: 
      - local_postgres_data:/var/lib/postgresql/data 
      - local_postgres_data_backups:/backups 
    env_file: 
      - ./.envs/.local/.postgres 

请您参考如下方法:

您的 manage.py 中可能有 \r\n(CRLF) 行结尾,这是 Windows 的默认设置,但在 Linux 下会导致错误。 manage.py 中的第一行应该是这样的:

#!/usr/bin/env python/r/n 

当您使用文本编辑器/IDE 打开源代码时,您可能看不到 /r/n 部分,但它就在那里。您应该做的是将 CRLF 行结尾转换为 LF 行结尾(适用于 Linux)。有一些工具可以做到这一点,并且由于您是在 Windows 上进行开发,我建议您将 IDE 配置为使用 LF 作为行尾。 (使用 PyCharm、Visual Studio Code 等配置它们真的很容易。)