Zihao

Make small but daily progress

0%

Python如何导入自定义模块

这个问题涉及到包和模块管理。包名和模块名一般是小写。你的文件是下面的结构,需要创建空文件 b/__init__.py,将b目录变成package。

a/a.py

1
2
from b.c import index
index()

b/c.py

1
2
def index():
print("hello")

b/__init__.pya/a.py 里面有两种引用方式,相对引用和绝对引用:

1
2
3
4
5
6
# 如果a.py是 library,两种引用方式都可以

from ..b.c import index
# 如果a.py是 executable,必须使用绝对引用

from b.c import index

如果使用绝对引用,需要确保b所在目录在PYTHONPATH (sys.path)里面,比如可以这样执行:

1
env PYTHONPATH=. python a/a.py

欢迎关注我的其它发布渠道