Python模块搜索路径

在编写程序时,我们有时候想把扩展功能,并把这些功能模块整合到一起变成一个module,以便后续开发时导入改模块。这个时候就涉及到模块搜索路径的问题。
如何让python找到我们的module并成功导入呢?方法有以下三种:

  1. 动态加载模块所在路径**
    临时生效。对于不经常使用的模块,这种方式比较推荐,这样不至于次要搜索路径污染了 PYTHONPATH。
  2. 修改 PYTHONPATH 变量
    永久生效,对于在许多程序中都使用的模块,可以采用这种方式。这将改变所有 Python 应用的搜索路径,因为启动 Python 时,它会读取这个变量,甚至不同版本的 Python 都会受影响。
  3. 增加 *.pth 文件
    永久生效,这是最简单的、也是推荐的方式。Python 在遍历已知的库文件目录过程中,如果遇到 .pth 文件,便会将其中的路径加入到 sys.path 中,于是 .pth 中所指定的路径就可以被 Python 运行环境找到了。

三种方法对应操作如下:
假设我们的模块所在路径是"/Users/lin/python_module"

1. 动态加载
import sys
sys.path.append("/Users/lin/python_module")
2. 修改 PYTHONPATH 变量
vim ~/.bashrc

用以上命令打开.bashrc文件并编辑。在文件末端加入下面这句命令:

export PYTHONPATH=$PYTHONPATH:/Users/lin/python_module

之后重新启动shell或者键入一下命令重新加载配置:

source ~/.bashrc # 或者 . ~/.bashrc 
3. 增加 *.pth 文件

首先找到 site-packages 的路径:

import site
site.getsitepackages()

根据输出路径,找到 site-packages 文件夹,在其中加入以 .pth 扩展名结尾的文件。该文件的内容是你要搜寻的模块地址。

/Users/lin/python_module

你可能感兴趣的:(Python模块搜索路径)