Mojo 允许您访问整个 Python 生态系统,但环境可能会因 Python 的安装方式而异。花些时间准确了解 Python 中的模块和包的工作原理是值得的,因为有一些复杂情况需要注意。如果您以前在调用 Python 代码时遇到困难,这将帮助您入门。
Python 中的模块和包
让我们从 Python 开始,如果我们在同一个目录中有两个文件:
.
├── main.py
└── mod.py
如果mod.py有一个函数和一个变量:
def foo(arg):
print(f'arg = {
arg}')
bar = [5, 10, 15, 20]
您可以从同一目录下的任何文件调用它:
from mod import foo, bar
foo("test")
bar
输出:
arg = test
[5, 10, 15, 20]
mod.py被视为名为mod 的模块。您还可以导入sys.path上的任何模块,我们来看看:
import sys
sys.path
输出:
['/usr/lib/python311.zip',
'/usr/lib/python3.11',
'/usr/lib/python3.11/lib-dynload',
'/home/j/.local/lib/python3.11/site-packages',
'/usr/lib/python3.11/site-packages',
'/home/j/blog']
因为我从/home/j/blog运行 python 解释器,所以这是我的 python 路径上的最后一个项,也是mod.py可访问的原因。
就像您的系统$PATH环境变量一样,每个路径都会按降序检查,直到找到您的模块。
如果我们查看/usr/lib/python3.11,我们会找到 Python 3.11 的标准库:
os.listdir