代码之家  ›  专栏  ›  技术社区  ›  Maverik Minett

嵌套Python包/Django应用程序打包

  •  0
  • Maverik Minett  · 技术社区  · 7 年前

    我有一个库,我正在创建多个应用程序使用。它由“main”包中的一组抽象基类和一系列可重用的Django应用程序组成。

    mylib core中的文件:

    • mylib/初始化
    • mylib公司/序列化程序.py
    • mylib公司/viewsets.py

    • mylib/auth/\uu init\uy.py
    • mylib/认证/模型.py
    • mylib/认证/序列化程序.py
    • mylib/认证/viewsets.py

    这是两个单独打包的库,其中 mylib-auth mylib-core 以及课程 是从 mylib核心

    我遇到的问题是在运行 文件 mylib核心 mylib核心 打包到virtualenv中 mylib身份验证 .

    我想这和我的嵌套包结构有关,我有一个 mylib mylib公司 包含 auth 子文件夹,正在忽略中的文件 venv/lib/.../mylib 目录。

    这将导致以下错误:

    当我尝试为运行测试套件时 mylib身份验证 我得到一个错误 mylib.auth 找不到,因为 没有财产 授权 -尽管安装了 mylib核心 进入我的虚拟世界。添加 __init__.py mylib公司 ImportError: No module named 'mylib....' 错误。

    测试和部署嵌套包的适当方法是什么?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Maverik Minett    7 年前

    答案在文档中: pkgutil-style namespace packages

    mylib/__init__.py 文件和以下内容:

    __path__ = __import__('pkgutil').extend_path(__path__, __name__)
    

    一切如期而至。