ModuleNotFoundError: Нет модуля с именем 'rest_framework' (перепробовано множество решений, но не работает)
Я столкнулся с этой ошибкой.
ModuleNotFoundError: No module named 'rest_framework'
У меня настроена виртуальная среда, и остальной фреймворк установлен правильно.
Когда я запускаю pip3.10 show djangoframework
, я получаю
Name: djangorestframework
Version: 3.14.0
Summary: Web APIs for Django, made easy.
Home-page: https://www.django-rest-framework.org/
Author: Tom Christie
Author-email: tom@tomchristie.com
License: BSD
Location: c:\users\chan\desktop\testpy\lib\site-packages
Requires: django, pytz
Required-by:
Мой интерпретатор - Python 3.10.8 той же версии, и он предназначен для виртуальной среды. Мой VSCode показывает мой интерпретатор как Python 3.10.8 ("TESTPY":venv) .\Scripts\python.exe
.
Я также включил rest_framework в INSTALLED_APPS в settings.py
INSTALLED_APPS = [
'rest_framework',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
Ниже приведена полная ошибка, которую я получаю.
(TESTPY) PS C:\Users\Chan\Desktop\TESTPY> python3 manage.py runserver
Watching for file changes with StatReloader
Exception in thread django-main-thread:
Traceback (most recent call last):
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2288.0_x64__qbz5n2kfra8p0\lib\threading.py", line 1016, in _bootstrap_inner
self.run()
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2288.0_x64__qbz5n2kfra8p0\lib\threading.py", line 953, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\Chan\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\django\utils\autoreload.py", line 64, in wrapper
fn(*args, **kwargs)
File "C:\Users\Chan\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\django\core\management\commands\runserver.py", line 125, in inner_run
autoreload.raise_last_exception()
File "C:\Users\Chan\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\django\utils\autoreload.py", line 87, in raise_last_exception
raise _exception[1]
File "C:\Users\Chan\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\django\core\management\__init__.py", line 398, in execute
autoreload.check_errors(django.setup)()
File "C:\Users\Chan\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\django\utils\autoreload.py", line 64, in wrapper
fn(*args, **kwargs)
File "C:\Users\Chan\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\django\__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "C:\Users\Chan\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\django\apps\registry.py", line 91, in populate
app_config = AppConfig.create(entry)
File "C:\Users\Chan\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\django\apps\config.py", line 193, in create
import_module(entry)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2288.0_x64__qbz5n2kfra8p0\lib\importlib\__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'rest_framework'
Я искал в гугле решение этой проблемы столько раз, что все ссылки стали фиолетовыми. У кого-нибудь есть идеи, почему это происходит? Спасибо
Редактирование:
Когда я запускаю pip list
, вот что я получаю.
(TESTPY) PS C:\Users\Chan\Desktop\TESTPY> pip list
Package Version
------------------- -------
asgiref 3.5.2
Django 4.1.2
djangorestframework 3.14.0
pip 22.3
pytz 2022.5
setuptools 63.2.0
sqlparse 0.4.3
tzdata 2022.5
У вас две разные установки python
из pip3 show
, есть такая строка:
Location: c:\users\chan\desktop\testpy\lib\site-packages
но ваш след стека перечисляет файлы, которые находятся в
File "C:\Users\Chan\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\
Возможно, вам следует использовать только команду python
вместо python3
. Потому что когда вы активируете virtualenv, бинарник python
будет переопределен, а python3
, возможно, нет.
Попробуйте:
python manage.py runserver
Или вы можете даже просто сделать:
./manage.py runserver
Если это не работает, возможно, причина в том, что файл manage.py
должен иметь разрешения на выполнение :
chmod +x manage.py