美文网首页
模块搜索目录

模块搜索目录

作者: 蝉时雨丶 | 来源:发表于2020-04-27 13:46 被阅读0次

当使用import语句导入模块时,默认情况下,会按照以下顺序进行查找:
(1)在当前目录(即执行的Python脚本文件所在目录)查找。
(2)到PYTHONPATH(环境变量)下的每个目录中查找
(3)到Python的默认安装目录下查找。
以上各个目录的具体位置保存在标准模块sys的sys.path变量中。可以通过以下代码输出具体的
目录:

>>> import sys
>>> print(sys.path)
['', 'C:\\Users\\39713\\AppData\\Local\\Programs\\Python\\Python37\\Lib\\idlelib', 
'C:\\Users\\39713\\AppData\\Local\\Programs\\Python\\Python37\\python37.zip',
 'C:\\Users\\39713\\AppData\\Local\\Programs\\Python\\Python37\\DLLs', 
'C:\\Users\\39713\\AppData\\Local\\Programs\\Python\\Python37\\lib', 
'C:\\Users\\39713\\AppData\\Local\\Programs\\Python\\Python37', 
'C:\\Users\\39713\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages']

如果要导入的模块不在所示的目录中,那么在导入模块时,将抛出异常。

注意:使用Import语句导入模块时,模块名是区分字母大小写的。

这时我们可以通过以下3种方式添加到指定的目录到sys.path中。
1.临时添加
临时添加即在导入模块的Python文件种添加,例如,需要将"C:\Users\39713\Desktop\lzx\PY练习"目录添加到sys.path中,可以
使用下面的代码:

>>> import sys
>>> sys.path.append('C:/Users/39713/Desktop/lzx/PY练习')
>>> sys.path
['', 'C:\\Users\\39713\\AppData\\Local\\Programs\\Python\\Python37\\Lib\\idlelib', 
'C:\\Users\\39713\\AppData\\Local\\Programs\\Python\\Python37\\python37.zip', 
'C:\\Users\\39713\\AppData\\Local\\Programs\\Python\\Python37\\DLLs',
 'C:\\Users\\39713\\AppData\\Local\\Programs\\Python\\Python37\\lib', 
'C:\\Users\\39713\\AppData\\Local\\Programs\\Python\\Python37', 
'C:\\Users\\39713\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages', 
'C:/Users/39713/Desktop/lzx/PY练习']

此时,输出sys.path即可看到新添加的目录。

说明:通过该方法添加的目录只在执行当前文件的窗口中有效,窗口关闭后即失效。

2.增加.pth文件(推荐)
在Python安装目录下的"Lib\site-packages"子目录中,创建一个扩展名为.pth的文件,文件名任
意。这里创建一个mrpath.pth文件,在该文件中添加要导入模块所在的目录。例如,将模块目录
'C:/Users/39713/Desktop/lzx/PY练习'添加到mrpath.pth文件,在这个pth文件里加入以下内容:
C:\Users\39713\Desktop\lzx\PY练习

注意:创建.pth文件后,需要重新打开要执行的导入模块的Python文件,否则新添加的目录不起
作用。

说明:该方法3.7版本以后有效。

3.在PYTHONPATH环境变量中添加
打开"环境变量"对话框,如果没有PYTHONPATH系统环境变量,则需要先创建一个,否则直接
选中PYTHONPATH变量,单击"编辑"按钮,并且在弹出对话框的"变量值"文本中添加新的模块
目录,目录之前使用逗号进行分隔。例如,创建系统环境变量PYTHONPATH,并指定模块所在
目录为C:\Users\39713\Desktop\lzx\PY练习。

注意:环境变量中添加模块目录后,需要重新打开要执行的导入模块的Python文件,否则新添加的目录不起
作用。

相关文章

  • 模块搜索目录

    当使用import语句导入模块时,默认情况下,会按照以下顺序进行查找:(1)在当前目录(即执行的Python脚本文...

  • 模块

    模块搜索目录 模块搜索目录 当使用import语句导入模块时,默认情况下,会按照以下顺序进行查找:(1)在当前目录...

  • python导入路径

    搜索路径 当你import某个模块,python解析器对模块位置的搜索顺序是:1、当前目录 当前目录以外的目录(可...

  • 2018-11-07 模块与包

    Python模块 引入模块 以脚本方式运行模块,name 被设置为 "main" 模块搜索路径 当前目录 sys....

  • webpack4个人学习详细笔记(11)-- resolve配置

    1. modules: 解析模块时搜索的目录,即 require 或 import 模块的时候,只写模块名的时候,...

  • 04面向对象编程(OOP)

    默认情况下,Python解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在sys模块的path...

  • Python学习笔记(十二)模块,类和实例

    模块搜索路径 如果我们要添加自己的搜索目录,有两种方法: 第一种方法是直接修改sys.path,添加要搜索的目录:...

  • Python的包导入

    Python import 的搜索路径顺序是: 在当前目录下搜索该模块 (包需要有__init__.py文件) 在...

  • Python import导入模块 - reload() 导入的

    仅供学习,转载请注明出处 import导入模块 1. import 搜索路径 路径搜索 从上面列出的目录里依次查找...

  • 模块导入搜索路径 sys.path

    模块搜索路径 1 程序的主目录 程序的文件目录 2 PYTHONPATH目录 环境变量设置的路径 3 标准链接库目...

网友评论

      本文标题:模块搜索目录

      本文链接:https://www.haomeiwen.com/subject/dzuywhtx.html