Python Django错误ModuleNotFoundError:没有名为'corsheaders'的模块[关闭]

Posted

技术标签:

【中文标题】Python Django错误ModuleNotFoundError:没有名为\'corsheaders\'的模块[关闭]【英文标题】:Python Django error ModuleNotFoundError: No module named 'corsheaders' [closed]Python Django错误ModuleNotFoundError:没有名为'corsheaders'的模块[关闭] 【发布时间】:2019-07-16 13:53:34 【问题描述】:

嘿,伙计们,当我安装了 corsheaders 时,我收到了以下错误,知道为什么我会收到以下错误消息,因为我没有想法。

installed:
Python 3.7.2

certifi==2018.11.29

chardet==3.0.4

Django==2.1.7

django-cors-headers==2.4.0

django-mssql==1.8

django-oauth-toolkit==1.2.0

djangorestframework==3.9.1

idna==2.8

oauthlib==3.0.1

pytz==2018.9

requests==2.21.0

urllib3==1.24.1

(Oauth) C:\Users\michael.mountford\OneDrive\Programming\matt-mikes-practice\Oauth>Scripts\python.exe mysite\manage.py runserver
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x03AC8C48>
Traceback (most recent call last):
  File "C:\Users\michael.mountford\OneDrive\Programming\matt-mikes-practice\Oauth\lib\site-packages\django\utils\autoreload.py", line 225, in wrapper
    fn(*args, **kwargs)
  File "C:\Users\michael.mountford\OneDrive\Programming\matt-mikes-practice\Oauth\lib\site-packages\django\core\management\commands\runserver.py", line 109, in inner_run
    autoreload.raise_last_exception()
  File "C:\Users\michael.mountford\OneDrive\Programming\matt-mikes-practice\Oauth\lib\site-packages\django\utils\autoreload.py", line 248, in raise_last_exception
    raise _exception[1]
  File "C:\Users\michael.mountford\OneDrive\Programming\matt-mikes-practice\Oauth\lib\site-packages\django\core\management\__init__.py", line 337, in execute
    autoreload.check_errors(django.setup)()
  File "C:\Users\michael.mountford\OneDrive\Programming\matt-mikes-practice\Oauth\lib\site-packages\django\utils\autoreload.py", line 225, in wrapper
    fn(*args, **kwargs)
  File "C:\Users\michael.mountford\OneDrive\Programming\matt-mikes-practice\Oauth\lib\site-packages\django\__init__.py", line 24, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "C:\Users\michael.mountford\OneDrive\Programming\matt-mikes-practice\Oauth\lib\site-packages\django\apps\registry.py", line 89, in populate
    app_config = AppConfig.create(entry)
  File "C:\Users\michael.mountford\OneDrive\Programming\matt-mikes-practice\Oauth\lib\site-packages\django\apps\config.py", line 90, in create
    module = import_module(entry)
  File "C:\Users\michael.mountford\OneDrive\Programming\matt-mikes-practice\Oauth\lib\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 'corsheaders'

【问题讨论】:

请发布您的 settings.py 文件。 检查coresheader是否在Installed_Apps中。 请检查您的settings.py 文件并检查INSTALLED_APPS 是否必须包含coresheader 【参考方案1】:

我遇到了同样的问题。如果“corsheaders”在您的 INSTALLED_APPS 中并且“corsheaders.middleware.CorsMiddleware”在您的 MIDDLEWARE 中,那么需要检查的是您的虚拟环境。

进入 /venv 文件夹并在 /site-packages 中查找“corsheaders”文件夹。

就我而言,我复制了我的项目文件夹,因此当我执行pip install django-cors-headers 时,它安装在原始项目的 venv 中。这可能就是 MichaelMountford 重新创建 venv 的原因。

【讨论】:

【参考方案2】:

在我的情况下,即使我在 settings.INSTALLED_APPS 中有 corsheaders,我也遇到了同样的问题。我的问题的原因是,我没有运行虚拟环境,在我启动它之后,问题就消失了。 也许它会帮助任何人。

【讨论】:

【参考方案3】:

这也可能是在corsheaders, 末尾添加, 而在INSTALLED_APPS 中添加它的情况。只需检查一次。

【讨论】:

【参考方案4】:

您必须在您的settings.INSTALLED_APPS 中添加corsheaders

【讨论】:

它已经是,但我仍然不确定我对那个 Django 实例做了什么,我最终重新创建了我的项目并开始了它,它对我有用。【参考方案5】:

原来我的虚拟环境已经损坏,必须重新创建,之后工作正常。

【讨论】:

请不要回答评论/问题。可以理解,您的代表太低而无法发表评论,但这并不意味着应该使用答案来使 cmets 作为替代方案。最好把它删掉。【参考方案6】:

我遇到了同样的问题。想通了,由于某种原因,Python 在 venv/site-packages 中看不到文件夹“corsheaders”。所以我只是将 'corsheaders' 文件夹从 venv 复制到我的项目文件夹中,就像我的应用程序和 manage.py 属于同一级别的应用程序一样。 而且它似乎有效。

【讨论】:

【参考方案7】:

我的项目中有这个问题ModuleNotFoundError: No module named 'corsheaders。我确保我使用 pipenv install django-cors-headers 在 vi​​rtualenv 中安装了该软件包,但仍然无法正常工作。

我尝试做pipenv unistall corshearders,然后重新安装,但没有成功。

主要问题(对我而言)

我意识到问题在于在我的 virtualenv 文件夹中。使用命令ls /home/youraccount/.local/share/virtualenvs/your-project-name-shUUxxdn3/lib/python3.8/site-packages/ | less(基本上是您在virtualenv 中的site-packages 路径)在运行安装命令后,我去检查corsheaders 是否存在。令我惊讶的是,只有文件夹 django_cors_headers-3.7.0.dist-info 包含单词 cors

解决方案

对我来说,手动删除 django_cors_headers-3.7.0.dist-info 文件夹,删除 Pipfile.lock 并运行全新安装的 cors 包是有效的。之后我检查了site-packages 里面有corseheaders 文件夹和django_cors_headers-3.7.0.dist-info 文件夹。

【讨论】:

以上是关于Python Django错误ModuleNotFoundError:没有名为'corsheaders'的模块[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Python django 错误

我在 django 项目中有 python 语法错误

ubuntu中的Python/django环境错误[关闭]

Python/Django 1.5 DatabaseWrapper 线程错误

Django:PYTHON_EGG_CACHE,访问被拒绝错误

导入错误:没有名为 django 的模块