Python导入模块的路径

通常情况下, 当使用import语句导入模块后, Python会按照以下的顺序查找指定的模块文件:

  • 在当前目录下, 即当前执行的程序文件所在目录下查找;
  • 到环境变量PYTHONPATH定义的路径下去查找;
  • 到Python默认的安装目录下去查找.

以上所有涉及到的目录, 都保存在标准模块syssys.path变量中, 通过此变量我们可以看到指定程序文件支持查找的所有目录. 换句话说, 如果要导入的模块没有存储在sys.path显示的目录中, 那么导入该模块并运行时, Python解释器就会抛出ModuleNotFoundError(未找到模块)异常.

对于自定义的Python模块, 有三种方法可以使其被Python找到:

  • sys.path中临时添加模块文件存储位置的完整路径;
  • 将模块放在sys.path变量中已包含的模块加载路径中;
  • 设置系统环境变量PYTHONPATH.

临时添加模块完整路径

在代码中使用sys.path.append()方法, 将模块文件的存储位置临时添加到sys.path变量中.

import sys

sys.path.append(modultPath)

需要注意的是, 通过该方法添加的目录, 只在当前文件中有效.

将模块保存到指定位置

对于一些通用性模块, 应该将其安装到Python的默认加载路径, 以便被所有程序共享.

Pytho程序默认的模块加载路径保存在sys.path变量中, 我们可以先查看sys.path中保存的默认加载路径, 然后将模块文件添加到其中的路径下. 虽然放在默认加载路径下的任何一个位置都是可以的, 但目录site-packages是最佳的选择, 因为它就是用来放置模块的.

设置环境变量PYTHONPATH

在环境变量PYTHONPATH中定义模块文件的路径.