Skip to main content
 首页 » 编程设计

python之没有名为 rest_framework 的模块。 Django + docker

2025年05月04日36fff_TT

我在 django docker 容器中的 virtualenv 中使用 pip 安装了带有 markdown 和 django filter 的 djangorestframework,通过 pip freeze 检查。 OS X 中的绝对路径是 /Users/user/project/denv/lib/python2.7/site-packages。在 settings.py 中添加了 '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