简体   繁体   English

使用 docker-compose 在 docker 中运行任何 manage.py 命令时,没有名为 django 的模块错误

[英]No module named django error when running any manage.py command in docker with docker-compose

I'm getting ImportError: No module named django when trying to up my containers running docker-compose up .尝试启动运行docker-compose up容器时,出现ImportError: No module named django

Here's my scenario:这是我的场景:

Dockerfile文件

FROM python:2.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/

docker-compose.yml docker-compose.yml

version: '2'
services:
  db:
    image: postgres
  web:
    build: .
    command: bash -c "python manage.py runserver"
    volumes:
      - .:/code
    expose:
      - "8000"
    links:
      - db:db

manage.py管理文件

import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings")

    from django.core.management import execute_from_command_line
    execute_from_command_line(sys.argv)
  • The containers were built successfully容器构建成功
  • My packages are present in the container (I get them when I run pip freeze )我的包存在于容器中(我在运行pip freeze时得到它们)

I've changed the manage.py content for我已经更改了 manage.py 内容

import django
print django.get_version()

and it worked.它奏效了。

This is basically the same example as in this tutorial , except for starting a new project.除了开始一个新项目之外,这与本教程中的示例基本相同。

My solution was to simply call我的解决方案是简单地调用

python3.6 manage.py ...

instead of而不是

python manage.py ...

I had to ensure that the module was imported along with app name:我必须确保模块与应用程序名称一起导入:

from uploadapi.importers import Status

instead of而不是

from importers upload Status

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Django:运行任何manage.py命令时日志记录模块出错 - Django: error with logging module when running any manage.py command manage.py 和 docker-compose 在不同的目录? - manage.py and docker-compose in different directories? Docker-compose 在 runserver 命令中找不到文件 manage.py - Docker-compose cannot find file manage.py in runserver command 在docker容器中为django运行cron作业时manage.py脚本出错 - Error in manage.py script when running cron job for django inside docker container 如何使用 Docker Compose 访问 Django manage.py - How to access Django manage.py with Docker Compose 当运行 docker-compose up 我得到 python: can't open file 'manage.py': [Errno 2] No such file or directory - When run docker-compose up I get python: can't open file 'manage.py': [Errno 2] No such file or directory 运行 Django 的“python3 manage.py migrate”时“No module named '_sqlite3'” - “No module named '_sqlite3'” when running Django's “python3 manage.py migrate” docker-compose exec web python manage.py makemigrations 问题 - docker-compose exec web python manage.py makemigrations problem python:无法打开文件“manage.py”:[Errno 2] 没有这样的文件或目录 docker-compose run - python: can't open file 'manage.py': [Errno 2] No such file or directory docker-compose run manage.py - 导入错误:没有名为 django 的模块 - manage.py - ImportError: No module named django
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM