Python 模块搜索路径

当在Python程序中导入模块时,Python会按照一定的顺序查找module.py文件,包括执行程序的目录、PYTHONPATH环境变量指定的目录以及Python安装目录等。sys.path变量存储了这个搜索路径,可以通过修改此变量在运行时改变搜索路径。确保模块被找到,可以将其放在执行程序目录、PYTHONPATH环境变量指定的目录或Python安装的依赖目录中。
摘要由CSDN通过智能技术生成

这篇文章翻译自https://www.pythontutorial.net/python-basics/python-module-search-path/


Python 模块搜索路径

摘要:在本教程中,你将学习当你在 Python 程序中导入一个模块时,模块搜索路径是怎样的。

Python模块搜索路径的介绍

当你在一个程序中导入一个模块时:

import module

Python将从以下来源搜索 module.py 文件。

  • 被执行程序所在的文件夹。

  • 在 PYTHONPATH 环境变量中指定的文件夹列表(如果你之前设置了它)

  • 你在安装 Python 时配置的安装依赖(installation-dependen)文件夹列表

Python将产生的搜索路径存储在来自 sys 模块的 sys.path 变量中。

下面的程序显示了当前的模块搜索路径。

import sys

for path in sys.path:
    print(path)

下面是在 Windows 上的输出样例。

D:\Python\
C:\Program Files\Python38\python38.zip
C:\Program Files\Python38\DLLs
C:\Program Files\Python38\lib
C:\Program Files\Python38
C:\Users\PythonTutorial\AppData\Roaming\Python\Python38\site-packages
C:\Program Files\Python38\lib\site-packages 

以下是 Linux 上的输出样例。

/Library/Frameworks/Python.framework/Versions/3.8/bin
/Library/Frameworks/Python.framework/Versions/3.8/lib/python38.zip 
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/lib-dynload
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.8/site-packages

为了确保Python能够找到 module.py ,你需要:

  • module.py 放在被执行程序的文件夹中。

  • PYTHONPATH 环境变量中包括包含 module.py 的文件夹。或者你可以把 module.py 放在包含在 PYTHONPATH 变量中的一个文件夹中。

  • module.py 放入一个依赖安装的文件夹中。

在运行时修改Python模块的搜索路径

Python 允许你在运行时通过修改 sys.path 变量来修改模块搜索路径。这允许你将模块文件存储在你选择的任何文件夹中。

由于 sys.path 是一个列表,你可以在它后面附加一个搜索路径。

下面的例子将 d:\modules 添加到搜索路径,并使用存储在该文件夹中的 recruitment 模块。

>>> import sys
>>> sys.path.append('d:\\modules\\')
>>> import recruitment
>>> recruitment.hire()
Hire a new employee...

总结

  • 当你导入一个模块时,Python 将从 sys.path 变量中指定的文件夹中搜索模块文件。

  • Python 允许你通过改变、增加和删除 sys.path 变量中的元素来修改模块搜索路径。
    (全文完)

部分图片来自于源网站,侵删。

鉴于本人才疏学浅,翻译难免有所疏漏,如果有任何问题欢迎随时联系我进行批评指正:2076577077@qq.com

我是gled fish, 点击这里来到我的博客网站:


转载请注明译者和原出处,请勿用于任何商业用途。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值