Python 没有名为rest\u framework的模块。Django+;码头工人

Python 没有名为rest\u framework的模块。Django+;码头工人,python,django,docker,virtualenv,Python,Django,Docker,Virtualenv,我已经在django docker容器中的virtualenv中使用pip安装了带有markdown和django过滤器的djangorestframework,通过pip freeze检查。OS X中的绝对路径是/Users/user/project/denv/lib/python2.7/site packages。在settings.py中添加了'rest\u framework',,但在docker compose up之后仍然出现以下错误。我猜这与错误的路径有关,但我不知道如何修复它 回

我已经在django docker容器中的virtualenv中使用pip安装了带有
markdown
django过滤器的
djangorestframework
,通过
pip freeze
检查。OS X中的绝对路径是
/Users/user/project/denv/lib/python2.7/site packages
。在settings.py中添加了
'rest\u framework',
,但在
docker compose up之后仍然出现以下错误。我猜这与错误的路径有关,但我不知道如何修复它

回溯(最近一次呼叫最后一次):
web|1 |文件“/usr/local/lib/python2.7/site packages/django/utils/autoreload.py”,第226行,在包装器中
web|1 | fn(*args,**kwargs)
web|1|文件“/usr/local/lib/python2.7/site packages/django/core/management/commands/runserver.py”,第113行,在内部|run中
web_1 |自动加载。引发上次异常()
web|1|文件“/usr/local/lib/python2.7/site packages/django/utils/autoreload.py”,第249行,在raise|last|例外中
web|1 | 6.重新播放(*|例外)
web|1 |文件“/usr/local/lib/python2.7/site packages/django/utils/autoreload.py”,第226行,在包装器中
web|1 | fn(*args,**kwargs)
web|1 |文件“/usr/local/lib/python2.7/site packages/django/_uinit__uuuuuu.py”,第27行,在安装程序中
web_1|应用程序。填充(设置。已安装的_应用程序)
web|1 |文件“/usr/local/lib/python2.7/site packages/django/apps/registry.py”,第85行,填充
web_1 | app_config=AppConfig.create(条目)
web|1 |文件“/usr/local/lib/python2.7/site packages/django/apps/config.py”,第90行,在create中
web_1 |模块=导入_模块(条目)
web_1 |文件“/usr/local/lib/python2.7/importlib/_init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuu.py”,第37行,在导入模块中
web_1|_____导入___(名称)
web_1 | ImportError:没有名为rest_framework的模块
编辑:终端屏幕截图

编辑2:docker-compose.yml

版本:“2”
服务:
db:
图片:博士后
网状物:
生成:。
命令:python manage.py runserver 0.0.0.0:8000
卷数:
-.:/code
端口:
- "8000:8000"
取决于:
-分贝
EDIT2:我想这个错误是因为应用程序实际使用的是docker的python而不是virtualenv python


可能吗?如何将djangorestframework安装到docker的python包中,或者更好地使django应用程序使用自己的python?

您不需要手动pip安装。dockerfile中的以下行将满足安装要求

RUN pip install -r requirements.txt
您只需要将djangorestframework添加到requirements.txt中

# previous stuff Django etc...
djangorestframework

docker-compose up --build

你能给我们看一下你的
Dockerfile

应该是这样的:

FROM python:2.7
ENV PYTHONUNBUFFERED 1
WORKDIR /code
ADD . /code/
RUN pip install -r requirements.txt
实际使用docker的python

是的,使用python:2.7中的
构建Docker映像将安装一个新的python环境

不是虚拟python

是的,除非您将您的
virtualenv
复制到Docker图像中并在那里激活它(您不应该这样做)


它被激活了。当我安装这些东西时,它被激活了


除非您
pip freeze>requirements.txt
并在
Dockerfile
中使用
运行pip install-r requirements.txt
,这将在Docker映像中的Python环境中的
virtualenv
中安装所有Python依赖项,否则这并不重要。

它已被激活。它是在我安装这些东西时激活的。NV实际上是我的虚拟环境,它是docker django应用程序。有docker compose而不是python manage.py runserver。在我运行程序之前,它总是被激活的server@DanLowe我通过“source denv/bin/activate”调用它,任何命令都会在中使用(denv)调用line@All那么,如何将djangorestfrmawork安装到docker的python中,或者如何使应用程序使用env的python?很可能是issue@All好吧,这对我来说并不重要。我关心的是如何让它发挥作用。使用Djangorest框架。有或没有virtualenv。你知道怎么做吗?)