我遇到了这个错误。
ModuleNotFoundError: No module named 'rest_framework'
我设置了一个虚拟环境,并正确安装了rest框架。
当我运行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:
我的解释器是Python3.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
发布于 2022-10-22 21:00:48
也许您应该只使用python
命令而不是python3
。
当您激活一个virtualenv时,所发生的情况是将一些shell二进制文件添加到您的PATH
中。这些二进制文件通常是python
和pip
,也可能是来自于虚拟环境中安装的其他pip包的其他二进制文件。
因此,当virtualenv被激活时,python
命令将在virtualenv中执行python二进制文件。但是python3
的可执行文件并不是过激的,所以当您执行它时,您只需要得到系统python3
。
所以试着:
python manage.py runserver
或者你甚至可以这么做
./manage.py runserver
如果这不起作用,可能是因为manage.py
文件需要有执行权限
chmod +x manage.py
发布于 2022-10-22 20:58:15
您有两个不同的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\
https://stackoverflow.com/questions/74166924
复制相似问题