如何更改依赖关系路径并部署到不同的目录结构而不是开发?
我的源目录中有以下结构
\ABCE
\ABCE\lib
\ABCE\lib\modulA.py
\ABCE\lib\modulA.py
如果我现在打包python setup.py sdist
我需要用以下方式调用模块:
import lib.moduleA
import lib.moduleB
我该如何避免lib。但保持我的目录结构?所以我用
导入import moduleA
import moduleB
答案 0 :(得分:1)
在lib
选项中列出packages_dir
:
package_dir = {'': 'lib'}
来自distutils
"Writing a Setup Script" documentation:
如果您使用不同的约定来布置源目录,那就没问题了:您只需提供package_dir选项即可告诉Distutils您的约定。例如,假设您将所有Python源保留在
lib
下,以便“根包”中的模块(即根本不在任何包中)位于lib
中,foo
中的模块}包在lib/foo
中,依此类推。然后你会把在您的设置脚本中package_dir = {'': 'lib'}
。此字典的键是包名称,空包名称代表根包。值是相对于分发根目录的目录名称。在这种情况下,当您说
packages = ['foo']
时,您承诺文件lib/foo/__init__.py
存在。