Python的sys.path包含一个指向不存在的文件的条目

时间:2017-01-26 22:39:56

标签: python windows-10

我用过

>>> import sys
>>> print(sys.path)

我得到了这个:

['', 'C:\\Users\\HowLo\\AppData\\Local\\Programs\\Python\\Python3‌​6-32\\python36.zip',
'C:\\Users\\HowLo\\AppData\\Local\\Programs\\Python\\Python3‌​6-32\\DLLs',
'C:\\Users\\HowLo\\AppData\\Local\\Programs\\Python\\Python3‌​6-32\\lib',
'C:\\Users\\HowLo\\AppData\\Local\\Programs\\Python\\Python3‌​6-32',
'C:\\Users\\HowLo\\AppData\\Local\\Programs\\Python\\Python3‌​6-32\\lib\\site-pack‌​ages']

我很困惑为什么会这样:

r'C:\Users\HowLo\AppData\Local\Programs\Python\Python36-32\python36.zip'

当我尝试在文件资源管理器中提取它时,没有任何东西。

2 个答案:

答案 0 :(得分:2)

sys.path存储一个字符串列表,每个字符串(如您所知)是计算机上某个位置的路径。

Python查找这些地方以查找程序可以使用的模块(当import sys时,python从sys中的某个位置获取sys.path模块)

.zip文件的路径与文件夹路径一样有效,python会尝试解压缩任何存档文件。

既然您知道sys.path是什么,我们就可以看看您的“问题”。

你说C:\Users\HowLo\AppData\Local\Programs\Python\Python36-32\python36.zip不存在。

所有这些意味着python不会从那里加载任何模块。

它确实没有任何(有意义的)含义。

答案 1 :(得分:-1)

sys路径可以附加您选择的任何路径。毕竟这只是一个清单。

用于搜索不在当前文件夹中的模块。有关详情,请参阅docs

  

指定模块搜索路径的字符串列表。从环境变量PYTHONPATH初始化,加上依赖于安装的默认值。

     

在程序启动时初始化时,此列表的第一项path [0]是包含用于调用Python解释器的脚本的目录。如果脚本目录不可用(例如,如果以交互方式调用解释器或者从标准输入读取脚本),则路径[0]为空字符串,它指示Python首先搜索当前目录中的模块。请注意,在作为PYTHONPATH结果插入的条目之前插入了脚本目录。

     

程序可以自行修改此列表。只应将字符串和字节添加到sys.path;导入期间将忽略所有其他数据类型。