如果安装了pip但无法通过import进行导入的情况

如果在进行pip安装后,已经安装好了,但无法通过import导入的情况。

这是一个简单的例子,例如,

>>> import django
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'django'

当尝试导入Django时,会发生错误。
错误的内容保持不变,即找不到模块。

开始我在想为什么没有安装Django,所以我试着使用pip命令安装它。

C:\Users\aaa>pip install django
Requirement already satisfied: django in c:\users\aaa\anaconda3\lib\site-packages (3.0)
Requirement already satisfied: sqlparse>=0.2.2 in c:\users\aaa\anaconda3\lib\site-packages (from django) (0.3.0)
Requirement already satisfied: asgiref~=3.2 in c:\users\aaa\anaconda3\lib\site-packages (from django) (3.2.3)
Requirement already satisfied: pytz in c:\users\aaa\anaconda3\lib\site-packages (from django) (2019.3)

因为已经满足了,所以被告知「已经存在」。
这意味着仅仅是路径没有通畅。

可以通过sys.path来检查路径。

>>> import sys
>>> import path
>>> pprint.pprint(sys.path)
['',
 'C:\\Users\\aaa\\Anaconda3\\python37.zip',
 'C:\\Users\\aaa\\Anaconda3\\DLLs',
 'C:\\Users\\aaa\\Anaconda3\\lib',
 'C:\\Users\\aaa\\Anaconda3',
 'C:\\Users\\aaa\\Anaconda3\\lib\\site-packages',
 'C:\\Users\\aaa\\Anaconda3\\lib\\site-packages\\win32',
 'C:\\Users\\aaa\\Anaconda3\\lib\\site-packages\\win32\\lib',
 'C:\\Users\\aaa\\Anaconda3\\lib\\site-packages\\Pythonwin',

确实,在c:\users\aaa\anaconda3\lib\site-packages路径下找不到django(版本3.0)。

如果你明白到这一点,剩下的只是将路径添加到环境变量中。通过sys.path.append可以将路径添加到环境变量中,所以只需要这样做。

sys.path.append("c:/users/aaa/anaconda3/lib/site-packages (3.0)")

如果你有异议的话,请再次确认一下。

>>> pprint.pprint(sys.path)
 'c:/users/aaa/anaconda3/lib/site-packages (3.0)'

如果有添加的话,那就可以了。

>>> import django
>>> print(django.get_version())
3.0

我确认了Django已经可以使用了。

错误模式

顺便提一下,如果复制粘贴并将其插入到环境变量中,会出现如下错误。

>>> sys.path.append("c:\users\aaa\anaconda3\lib\site-packages (3.0)")
  File "<stdin>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \uXXXX escape
>>> sys.path.append("c:/users/aaa/anaconda3/lib/site-packages (3.0)")

这是因为这个斜杠标记是一个转义符,所以被识别为转义序列的\u。将sys.path.append(“c:\users\aaa\anaconda3\lib\site-packages (3.0)”)改为sys.path.append(“c:/users/aaa/anaconda3/lib/site-packages (3.0)”)就可以了。

广告
将在 10 秒后关闭
bannerAds