我有一个要在多个应用程序中使用的库。它由位于“ main”包中的一组抽象基类和一系列可重复使用的Django应用程序组成。
mylib-core中的文件:
mylib-auth中的文件:
这是两个要分别打包的库,其中mylib-auth
依赖于mylib-core
,mylib-auth
中的类是从mylib-core
中的类派生的
我遇到的问题是,在为mylib-auth
运行测试运行程序时,找不到mylib-core
的文件。我已经将mylib-core
软件包安装到mylib-auth
的virtualenv中。
我认为这与我的嵌套包结构有关-在两个包中都有一个mylib
文件夹。似乎python只在包含mylib
子文件夹的父auth
目录中寻找文件,而忽略venv/lib/.../mylib
目录中的文件。
这会导致以下错误:
当我尝试为mylib-auth
运行测试套件时,收到错误消息,因为mylib.auth
没有属性mylib
-尽管已安装,但找不到应用程序auth
mylib-core
进入我的virtualenv。在auth软件包的__init__.py
目录下添加mylib
可解决此问题(但显然不应该存在,因为此文件在我的核心软件包中定义)。此后,我得到ImportError: No module named 'mylib....'
错误。
什么是测试和部署嵌套程序包的适当方法?
答案 0 :(得分:0)
答案在文档中:pkgutil-style namespace packages
两个软件包都必须具有let DueDate = dateFormatter.string(from:dates!)
文件并具有以下内容:
mylib/__init__.py
一切都按预期进行。