您不能 在 包中使用脚本;你在跑步
test, 不是
test.test。因此,顶层脚本不能使用相对导入。
如果你想运行包作为一个脚本,你需要移动
test/test.py到
testpackage/__main__.py,在你的shell移动一个目录时
~/Desktop,告诉Python来运行一个包
python-m testpackage。
演示:
$ ls testpackage/__init__.py __main__.py __pycache__ controller.py$ cat testpackage/controller.py class Controller: def __init__(self): pass$ cat testpackage/__init__.py # -*- coding: utf-8 -*-$ cat testpackage/__main__.py from .controller import Controllerif __name__ == '__main__': print('running...')$ python3.3 -m testpackagerunning...您无法命名包裹
test; Python已经为测试套件提供了这样一个软件包,可以在找到当前工作目录中的软件包之前找到它。
另一种方法是在包 外部 创建脚本,然后从脚本导入包。



