簡體   English   中英

沒有名為rest_framework的模塊。 Django + Docker

[英]No module named rest_framework . Django + Docker

我已經安裝了djangorestframeworkmarkdowndjango 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中並在那里激活它(您不應該這樣做)。

它被激活了。 當我安裝這些東西時它被激活了

除非您在DockerfileRUN 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM