【问题标题】:No module named 'social_django' but 'social-auth-app-django' is installed没有名为“social_django”的模块,但安装了“social-auth-app-django”
【发布时间】:2021-12-31 01:55:56
【问题描述】:

问题摘要

我正在创建一个 Django 项目并尝试设置 Auth0 集成。根据 Auth0 的文档,我安装了 social-auth-app-django 库,然后安装了 social-auth-core。所以请注意这两个库都已安装

这是我的py -m pip list 输出证明:

Package                Version
---------------------- ---------
asgiref                3.4.1
certifi                2021.10.8
cffi                   1.15.0
charset-normalizer     2.0.7
colorama               0.4.4
cryptography           35.0.0
defusedxml             0.7.1
Django                 3.2.9
ecdsa                  0.17.0
idna                   3.3
oauthlib               3.1.1
pip                    21.3.1
pyasn1                 0.4.8
pycparser              2.21
PyJWT                  2.3.0
python-dotenv          0.19.2
python-jose            3.3.0
python-social-auth     0.3.6
python3-openid         3.2.0
pytz                   2021.3
requests               2.26.0
requests-oauthlib      1.3.0
rsa                    4.7.2
setuptools             57.4.0
six                    1.16.0
social-auth-app-django 5.0.0
social-auth-core       4.1.0
sqlparse               0.4.2
urllib3                1.26.7

如您所见,我正在运行 Django 3.2.9。我也在使用 Python 3.10。

在完成 Auth0 的所有步骤后,我运行 py manage.py migrate 并收到以下结束错误消息: ModuleNotFoundError: No module named 'social_django'

我尝试过的

我已尝试多次卸载并重新安装 social-auth-app-djangosocial-auth-core 库。我也尝试过单独安装这些库,而不仅仅是安装social-auth-app-django。我也尝试安装social-auth-app[django](使用括号)。没有任何效果。

我可以在网上找到的每篇文章都在告诉 OP 安装 social-auth-app-django 库,这应该可以解决他们的问题。但正如所证明的那样,我相信我已经做到了。因此,除非我需要以不同的方式安装库,否则我需要不同的解决方案。

我们将不胜感激任何和所有的帮助。谢谢!

【问题讨论】:

  • 您可能遇到了最常见的问题——您可能已经安装了两个 Python,并且您在一个 Python 中安装了模块,但您使用其他 Python 运行代码。 Python 不共享模块,您必须在正确的 Python 中安装模块。在代码中,您可以运行print( sys.executable ) 来获取/full/path/to/python,然后运行/full/path/to/python -m pip install ... 在此Python 中安装模块。
  • @furas 有趣...当我打印 sys.executable 时,它​​会打印出我的 python 3.8 可执行文件的路径。但是每当我运行 python 命令时,我都使用 python 3.10 前缀设置了所有内容。这种差异是否来自 Django 项目设置?如何使用 Python 3.10 可执行文件执行项目?
  • 知道了!我使用 python 3.8 而不是 3.10 创建了我的虚拟环境。因此,所有内容而不是虚拟环境都没有安装正确的版本。感谢@furas 为我指明了正确的方向!

标签: python django python-social-auth social-auth-app-django


【解决方案1】:

非常感谢 cmets 中的 @furas 帮助我指明了正确的方向。

解决方案:使用python 3.10而不是python 3.8重新初始化虚拟环境并重新安装必要的包。

解释:问题是我无意中使用 python 3.8 创建了我的 venv。因此,即使我在 3.8 venv 中成功运行 py -m pip list,我的所有软件包仍然使用 python 3.8 安装。因此,当我尝试使用 python 3.10 进行迁移时,这些包不可见。

【讨论】:

    猜你喜欢
    • 2017-07-23
    • 2019-05-13
    • 2018-03-19
    • 2017-05-28
    • 1970-01-01
    • 2021-03-20
    • 2020-06-04
    • 2019-12-07
    • 1970-01-01
    相关资源
    最近更新 更多