![](/img/trans.png)
[英]Django Rest Framework -- no module named rest_framework
[英]No module named rest_framework . Django + Docker
我已经安装了djangorestframework
与markdown
和django filter
在Django搬运工容器使用PIP在virtualenv中,通过检查pip freeze
。 OS X中的绝对路径是/Users/user/project/denv/lib/python2.7/site-packages
。 在settings.py中添加了'rest_framework',
但在'rest_framework',
docker-compose up
之后仍然出现以下错误。 我想这与错误的路径有关,但不知道如何解决。
Traceback (most recent call last):
web_1 | File "/usr/local/lib/python2.7/site-packages/django/utils/autoreload.py", line 226, in wrapper
web_1 | fn(*args, **kwargs)
web_1 | File "/usr/local/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 113, in inner_run
web_1 | autoreload.raise_last_exception()
web_1 | File "/usr/local/lib/python2.7/site-packages/django/utils/autoreload.py", line 249, in raise_last_exception
web_1 | six.reraise(*_exception)
web_1 | File "/usr/local/lib/python2.7/site-packages/django/utils/autoreload.py", line 226, in wrapper
web_1 | fn(*args, **kwargs)
web_1 | File "/usr/local/lib/python2.7/site-packages/django/__init__.py", line 27, in setup
web_1 | apps.populate(settings.INSTALLED_APPS)
web_1 | File "/usr/local/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate
web_1 | app_config = AppConfig.create(entry)
web_1 | File "/usr/local/lib/python2.7/site-packages/django/apps/config.py", line 90, in create
web_1 | module = import_module(entry)
web_1 | File "/usr/local/lib/python2.7/importlib/__init__.py", line 37, in import_module
web_1 | __import__(name)
web_1 | ImportError: No module named rest_framework
编辑2:docker-compose.yml
version: '2'
services:
db:
image: postgres
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
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
是的,使用FROM python:2.7
构建Docker-Image将安装新的Python环境。
不是virtualenv python。
是的,除非将您的virtualenv
复制到Docker-Image中并在那里激活它(您不应该这样做)。
它被激活了。 当我安装这些东西时它被激活了
除非您在Dockerfile
内RUN pip install -r requirements.txt
Dockerfile
pip freeze > requirements.txt
并使用RUN pip install -r requirements.txt
都没有关系,否则它将在Docker-Image内的Python环境中的virtualenv
内安装所有Python依赖项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.