自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501
当使用import语句导入模块时,默认情况下,会按照以下顺序进行查找。
(1)在当前目录(即执行的Python脚本文件所在目录)下查找。
(2)到PYTHONPATH(环境变量)下的每个目录中查找。
(3)到Python的默认安装目录下查找。
以上各个目录的具体位置保存在标准模块sys的sys.path变量中。可以通过以下代码输出具体的目录。
import sys # 导入标准模块sys
print(sys.path) # 输出具体目录
例如,在IDLE窗口中,执行上面的代码,将显示如图6所示的结果。
图6 在IDLE窗口中查看具体目录
如果要导入的模块不在图6所示的目录中,那么在导入模块时,将显示如图7所示的异常。
图7 找不到要导入的模块
注意:使用import语句导入模块时,模块名是区分字母大小写的。
这时,我们可以通过以下3种方式添加指定的目录到sys.path中。
(1)临时添加
临时添加即在导入模块的Python文件中添加。例如,需要将“E:\program\Python\Code\demo”目录添加到sys.path中,可以使用下面的代码:
import sys # 导入标准模块sys
sys.path.append('E:/program/Python/Code/demo')
执行上面的代码后,再输出sys.path的值,将得到以下结果:
['E:\\program\\Python\\Code', 'G:\\Python\\Python36\\python36.zip', 'G:\\Python\\Python36\\DLLs', 'G:\\Python\\Python36\\lib', 'G:\\Python\\Python36', 'G:\\Python\\Python36\\lib\\site-packages', 'E:/program/Python/Code/demo']
在上面的结果中,红字部分为新添加的目录。
说明:通过该方法添加的目录只在执行当前文件的窗口中有效,窗口关闭后即失效。
(2)增加.pth文件(推荐)
在Python安装目录下的Lib\site-packages子目录中(例如,笔者的Python安装在G:\Python\Python36目录下,那么该路径为G:\Python\Python36\Lib\site-packages),创建一个扩展名为.pth的文件,文件名任意。这里创建一个mrpath.pth文件,在该文件中添加要导入模块所在的目录。例如,将模块目录“E:\program\Python\Code\demo”添加到mrpath.pth文件,添加后的代码如下:
# .pth文件是创建的路径文件(这里为注释)
E:\program\Python\Code\demo
注意:创建.pth文件后,需要重新打开要执行的导入模块的Python文件,否则新添加的目录不起作用。
说明:通过该方法添加的目录只在当前版本的Python中有效。
(3)在PYTHONPATH环境变量中添加
打开“环境变量”对话框,如果没有PYTHONPATH系统环境变量,则需要先创建一个,否则直接选中PYTHONPATH变量,再单击“编辑”按钮,并且在弹出对话框的“变量值”文本中添加新的模块目录,目录之前使用逗号进行分隔。例如,创建系统环境变量PYTHONPATH,并指定模块所在目录为“E:\program\Python\Code\demo;”,效果如图8所示。
图8 在环境变量中添加PYTHONPATH环境变量
注意:在环境变量中添加模块目录后,需要重新打开要执行的导入模块的Python文件,否则新添加的目录不起作用。
说明:通过该方法添加的目录可以在不同版本的Python中共享。