[英]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)
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.