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

时间:2016-11-08 01:48:04

标签: python django docker docker-compose

我在尝试运行ImportError: No module named django的容器时收到docker-compose up

这是我的情景:

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/

搬运工-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)
  • 容器已成功构建
  • 我的包存在于容器中(当我运行pip freeze时)我得到它们

我已经更改了

的manage.py内容
import django
print django.get_version()

并且有效。

除了开始一个新项目之外,这基本上与此tutorial中的示例相同。

2 个答案:

答案 0 :(得分:0)

我的解决方法是简单地致电

python3.6 manage.py ...

代替

python manage.py ...

答案 1 :(得分:0)

我必须确保模块与应用程序名称一起导入:

from uploadapi.importers import Status

代替

from importers upload Status