django 模块未找到错误:没有名为'rest_framework'的模块,如何修复此错误?

jobtbby3  于 2023-03-04  发布在  Go
关注(0)|答案(8)|浏览(220)

我是Django的新手,我使用Ubuntu,Apache和virtualenv,我在DigitalOcean上运行Ubuntu,我尝试着同时使用Django和React,所以我下载了djangorestframework,但是当我运行服务器的时候,我遇到了这个问题。

(new_app) sot232@ubuntu:/var/www/html/django_app/commercial$ python3 manage.py runserver
Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
  File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.7/threading.py", line 865, in run
    self._target(*self._args, **self._kwargs)
  File "/home/sot232/new_app/lib/python3.7/site-packages/django/utils/autoreload.py", line 54, in wrapper
    fn(*args, **kwargs)
  File "/home/sot232/new_app/lib/python3.7/site-packages/django/core/management/commands/runserver.py", line 109, in inner_run
    autoreload.raise_last_exception()
  File "/home/sot232/new_app/lib/python3.7/site-packages/django/utils/autoreload.py", line 77, in raise_last_exception
    raise _exception[0](_exception[1]).with_traceback(_exception[2])
  File "/home/sot232/new_app/lib/python3.7/site-packages/django/utils/autoreload.py", line 54, in wrapper
    fn(*args, **kwargs)
  File "/home/sot232/new_app/lib/python3.7/site-packages/django/__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/home/sot232/new_app/lib/python3.7/site-packages/django/apps/registry.py", line 91, in populate
    app_config = AppConfig.create(entry)
  File "/home/sot232/new_app/lib/python3.7/site-packages/django/apps/config.py", line 90, in create
    module = import_module(entry)
  File "/home/sot232/new_app/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'rest_framework'

我在www.example.com文件中正确地包含了rest_framework。settings.py file.

INSTALLED_APPS = [
    'rest_framework',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'commercial',
]

我试过这些命令。

sudo pip3 install djangorestframework
sudo pip install djangorestframework
sudo pip install django-rest-swagger
sudo apt-get install python3-setuptools

我还尝试在sudo su之后安装djangorestframework。
(我也试过其他建议,但我记不起来了。)
另外,这是我在一个python shell上得到的。

Python 3.7.3 (default, Apr  3 2019, 05:39:12) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import rest_framework
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'rest_framework'
>>>

这里是一个dist-packages,如果你需要它。

(new_app) sot232@ubuntu:/usr/local/lib/python3.7/dist-packages$ ls
Django-2.2.1.dist-info               pytz-2019.1.dist-info
__pycache__                          rest_framework
corsheaders                          sqlparse
django                               sqlparse-0.3.0.dist-info
django_cors_headers-3.0.0.dist-info  virtualenv-16.5.0.dist-info
djangorestframework-3.9.4.dist-info  virtualenv.py
pytz                                 virtualenv_support

如何解决我的问题?
任何帮助都将不胜感激。我在StackOverflow上看到其他帖子似乎和我的相似,但似乎没有什么能解决我的问题。
(Edit(一)
当env被激活时,我试图运行pip install djangorestframework,但收到了以下错误消息。

(new_app) sot232@ubuntu:~/new_app/bin$ pip install djangorestframework
Collecting djangorestframework
  Using cached https://files.pythonhosted.org/packages/1b/fe/fcebec2a98fbd1548da1c12ce8d7f634a02a9cce350833fa227a625ec624/djangorestframework-3.9.4-py2.py3-none-any.whl
Installing collected packages: djangorestframework
ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/home/sot232/new_app/lib/python3.7/site-packages/djangorestframework-3.9.4.dist-info'
Consider using the `--user` option or check the permissions.

(Edit(二)
我运行了pip freezepip3 freeze。我收到了这个结果。

sot232@ubuntu:~/new_app/bin$ source activate
(new_app) sot232@ubuntu:~/new_app/bin$ pip freeze
Django==2.2.1
mysqlclient==1.4.2.post1
pytz==2019.1
sqlparse==0.3.0

我的virtualenv上好像没有安装rest_framework,但是djangorestframework==3.9.4是全局安装的。

w7t8yxp5

w7t8yxp51#

我尝试过的所有方法都失败了。我只是创建了另一个virtualenv并重新安装了所有的东西。现在,它就像一个护身符一样工作了。

zkure5ic

zkure5ic2#

安装rest_framework后我还是会遇到错误,最后,这个解决方案对我起作用了。
1.在PyCharm IDE中打开项目
1.创建www.example.com serializers.py
1.输入此行-从rest_framework导入序列化程序
1.将鼠标悬停在曲线上,PyCharm会建议您安装rest_framework

ljsrvy3e

ljsrvy3e3#

在我看来,您试图在全局安装Django REST Framework的同时激活一个名为new_app的虚拟环境来运行此程序。
你有办法解决这个问题:
1.在new_app环境处于活动状态的情况下运行pip install djangorestframework(以及您想要或需要的任何其他命令)。请注意,此处没有sudo
1.在没有虚拟环境处于活动状态的情况下运行开发服务器。
当然,第一条是首选的方式,祝你好运!

w8ntj3qf

w8ntj3qf4#

您可以运行pip freeze来确认您在virtualenv中安装了哪些库。
有时,库没有正确安装,它将在列表中丢失。

798qvoo8

798qvoo85#

我遇到了这个问题。我运行了Python -M PIP安装-升级PIP对我来说是有效的。

xsuvu9jc

xsuvu9jc6#

rest_framework复制到项目主目录或安装它

14ifxucb

14ifxucb7#

这帮助了我

pip3 install djangorestframework
pip install djangorestframework
pip install djangorestframework-jwt
brgchamk

brgchamk8#

我检查了pip freeze和我的requirements.txt。我的一些模块没有列在pip freeze中。所以重新安装了所有的要求。

pip install -r requirements.txt

除非需要显式安装缺少的模块,否则上述方法仅适用于requirements.txt

相关问题