python 是如何查找模块的

python 中一个模块是一个 .py 后缀的 python 文件, 一个包是指包含若干个 python 文件的文件夹,一般 python 包中都会包含一个 init.py 文件。

默认情况下, python 会在 $PYTHONPATH 目录中查找包和模块, 要知道 $PYTHONPATH 包含那些目录,可以通过如下代码来查看:

1
2
import sys;
print(sys.path)

如果文件不在 $PYTHONPATH 中, 那么是无法通过 import 直接导入的。我们可以通过向 $PYTHONPATH 中追加一个新的目录

1
export PYTHONPATH=/path/to/your/package_or_module:$PYTHONPATH

或者

1
2
import sys
sys.path.insert(0, "/path/to/your/package_or_module")

如果你的某个包在 /path/to/your/package_or_module 目录下,那么这时候你就能直接在代码里面 import 这个包了

1
import package