当前位置: 首页 > 知识库问答 >
问题:

Python3.7软件包真的不需要_init__; py.py吗?

东门晟
2023-03-14

最近我创建了一个flask应用程序,并决定在应用程序文件夹外添加一个测试文件夹(应用程序文件夹和测试文件夹都在同一个目录中)。我要测试的所有实现都包含在app文件夹中创建的包和模块中。

在两个文件夹中都有_init__u; py.py文件,正如预期的那样工作正常。但是,当我从测试文件夹中删除_uinit__uuu.py文件时,我开始体验moduleImportError。PythonDoc说,Python3.3中的包不再需要_init__u;.py文件,但在我的例子中,它似乎是一个要求。有人能解释为什么会这样吗?

共有1个答案

公羊玉泽
2023-03-14

快速回答,是的,多亏了隐式名称空间包,您不再需要\uuuu init\uuuu.py文件了。但是standart库的一些工具,包括unittest或setup工具,仍然需要\uuu init\uuuu.py文件。

在大多数情况下,我建议以下项目植树:

setup.py
src/
    mypkg/
        __init__.py
        app.py
        view.py
tests/
    __init__.py
    foo/
        __init__.py
        test_view.py
    bar/
        __init__.py
        test_view.py

顶部包装src和根文件夹不需要\uuuuu init\uuuuuuuu.py文件。每个其他子模块都需要一个\uuuu init\uuuu.py文件。

通过遵循这条规则,大多数工具成功地发现了模块,包括unittest、pytest和setuptools。

 类似资料:
  • 问题内容: 我正在使用Python 3.5.1。我在这里阅读了文档和包部分:https : //docs.python.org/3/tutorial/modules.html#packages 现在,我具有以下结构: : 现在,在: 同样,现在在家里,超级文件夹: 实际上,我可以做各种事情: 为什么这样做?我虽然有被需要的文件(空的都可以)两种,并为要导入的时候Python的路径指向文件夹? 这似

  • 问题内容: 我在阅读AngularJS附带的精简版jQuery。但是,我不断听到有关谈论Angular和jQuery的人们的参考。我什至检查了ng- grid 并注意到它说: AngularUI团队用AngularJS和jQuery编写的Angular Data Grid 因此,如果我确实在需要jQuery的时候才使用Angular,那么AngularJS附带的版本又没有提供什么呢? 问题答案:

  • 有个软考班, 要 3600 , 报班还是自己学, 报班有意义不

  • 问题内容: 我们需要将Karma测试运行程序集成到TeamCity中,为此,我想给sys-engineers一个小的脚本(powershell或其他东西),该脚本将: 从一些配置文件中选择所需的版本号(我想我可以将其作为注释放在) 检查npm的全局回购中是否安装了已定义的业力赛跑者版本 如果不是,或者安装的版本比预期的要旧:请获取并安装正确的版本 运行: 所以我真正的问题是:“如果安装了所需版本的

  • 我们需要将Karma test runner集成到TeamCity,为此我想给系统工程师一个小脚本(powershell或其他),它将: > 从某个配置文件中获取所需的版本号(我想我可以将其作为注释放在中) 检查定义的karma runner版本是否安装在NPM的全球回购中 所以我真正的问题是:“如果安装了所需的包版本,如何才能签入脚本?”您是否应该进行检查,或者每次只调用是安全的? 我不想总是检

  • 问题内容: 我真的需要做mysql_close()吗?为什么或者为什么不? 即使我不执行mysql_close,也有触发器会在mysql_connect之后关闭链接吗? 问题答案: 在大多数情况下,调用不会对性能产生任何影响。但是,关闭程序不再使用的资源(文件句柄,打开的套接字,数据库连接等)始终是一个好习惯。 如果您正在做可能要花费几秒钟的操作,例如从REST API读取和解析数据,则尤其如此。