提问者:小点点

未解决的来自allauth的导入


我试图从Allauth中使用一些导入,但我得到了Python(unresolved-import)

我还pip安装了django-allauth,我使用的是VirtualEnv。

这是我在虚拟环境中的pip冻结:

appdirs==1.4.3
asgiref==3.2.7     
autopep8==1.5.2    
certifi==2020.4.5.1
cffi==1.14.0       
chardet==3.0.4
coverage==5.1
cryptography==2.9.2
defusedxml==0.6.0
distlib==0.3.0
Django==3.0.6
django-allauth==0.42.0
django-cors-headers==3.3.0
django-rest-auth==0.9.5
django-rest-knox==4.1.0
djangorestframework==3.11.0
djangorestframework-jwt==1.11.0
env==0.1.0
filelock==3.0.12
idna==2.9
oauthlib==3.1.0
pipenv==2018.11.26
pycodestyle==2.5.0
pycparser==2.20
PyJWT==1.7.1
python3-openid==3.1.0
pytz==2020.1
requests==2.23.0
requests-oauthlib==1.3.0
six==1.14.0
sqlparse==0.3.1
urllib3==1.25.9
virtualenv==20.0.20
virtualenv-clone==0.5.4

另外,如果我尝试重新安装,将返回以下消息:

Requirement already satisfied: django-allauth in c:\users\oricc\appdata\local\programs\python\python38-32\lib\site-packages (0.42.0)

我只是一个初学者,但就我所知,django无法从我的虚拟环境中看到allauth,因为它安装在主python路径中。

有什么好的解决办法呢? 是否有可能在虚拟环境内部安装allauth?


共1个答案

匿名用户

是的,这是可能的,您应该将其安装在VirtualEnv中。 (除非您的virtualenv是用--system-site-packages创建的,否则它不会使用那些系统范围的包。)

您应该清理您的全局环境:

  • 在virtualenv之外,运行PIP List。 看看不应该存在的软件包(可以有几个便于全局使用的软件包,但通常情况下,越少的全局软件包越好)。
  • 在这些包上运行pip uninstall some-package-here

然后在您的virtualenv中重新安装您的需求(删除virtualenv并在其位置创建一个新的virtualenv可能是个好主意)。

通常,配置PIP_REQUIRE_VirtualEnv设置也是一个好主意,这样就不会意外地全局安装包。