您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python3:尝试以非包形式进行相对导入

Python3:尝试以非包形式进行相对导入

您不能 包中使用脚本;你在跑步test不是 test.test。因此,顶层脚本不能使用相对导入。

如果你想运行包作为一个脚本,你需要移动test/test.pytestpackage/__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 Controller
if __name__ == '__main__':
    print('running...')

$ python3.3 -m testpackage
running...

您无法命名包裹test; Python已经为测试套件提供了这样一个软件包,可以在找到当前工作目录中的软件包之前找到它。

另一种方法是在包 外部 创建脚本,然后从脚本导入包。

python 2022/1/1 18:37:56 有239人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶