Python模块的搜索路径
Python模块的搜索路径
搜索路径是由一系列目录名组成的,当我们使用import语句的时候,Python解释器就依次从这些目录中去寻找所引入的模块。
搜索路径是在Python编译或安装的时候确定的,安装新的库应该也会修改。搜索路径被存储在sys模块中的path变量中。
import sys
print(sys.path)
本机运行结果
C:UsershccmaAnaconda3python.exe E:/wkp01/p00/test01/atestpkg/t04.py
['E:\wkp01\p00\test01\atestpkg', 'E:\wkp01\p00\test01', 'E:\wkp01\p00\test01\sonic\asonic\pybean', 'E:\wkp01\p00\test01\sonic\asonic', 'E:\wkp01\p00\test01\audio_player', 'E:\wkp01\p00\test01\ld02\ldcom', 'E:\wkp01\p00\test01\atestpkg', 'C:\Users\hccma\Anaconda3\python37.zip', 'C:\Users\hccma\Anaconda3\DLLs', 'C:\Users\hccma\Anaconda3\lib', 'C:\Users\hccma\Anaconda3', 'C:\Users\hccma\AppData\Roaming\Python\Python37\site-packages', 'C:\Users\hccma\Anaconda3\lib\site-packages', 'C:\Users\hccma\Anaconda3\lib\site-packages\win32', 'C:\Users\hccma\Anaconda3\lib\site-packages\win32\lib', 'C:\Users\hccma\Anaconda3\lib\site-packages\Pythonwin']
Process finished with exit code 0
通常情况下,当使用 import 语句导入模块后,Python 会按照以下顺序查找指定的模块文件:
- 在当前目录,即当前执行的程序文件所在目录下查找;
- 到 PYTHONPATH(环境变量)下的每个目录中查找;
- 到 Python 默认的安装目录下查找。
因此,为了让Python中import语句能够找到模块,这里有4种方法。
- 把需要的模块放到当前目录中;
- 把需要的模块路径配置到 PYTHONPATH(系统环境变量)中;
- 把需要的模块复制到 Python 默认的安装目录中;
- 利用sys.path.append()临时添加模块路径。
在PyCharm中右键点击包时,右键菜单"MarkDirectory as"下的“Sources Root”可以把包路径添加到sys.path中。