Mojo 允许您访问整个 Python 生态系统,但环境可能会因 Python 的安装方式而异。花些时间准确了解 Python 中的模块和包的工作原理是值得的,因为有一些复杂情况需要注意。如果您以前在调用 Python 代码时遇到困难,这将帮助您入门。
Python 中的模块和包
让我们从 Python 开始,如果我们在同一个目录中有两个文件:
python">.
├── main.py
└── mod.py
如果mod.py有一个函数和一个变量:
python">
def foo(arg):print(f'arg = {arg}')bar = [5, 10, 15, 20]
您可以从同一目录下的任何文件调用它:
python">
from mod import foo, barfoo("test")
bar
输出:
python">arg = test
[5, 10, 15, 20]
mod.py被视为名为mod 的模块。您还可以导入sys.path上的任何模块,我们来看看:
python">import sys
sys.path
输出:
python">['/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 的标准库:
python">os.listdir