如何使用本地程序包使用setup.py重新解决依赖关系?

时间:2017-04-12 11:41:58

标签: python dependencies package local setup.py

我正在设计一个像这样的python项目:

packages/
    __init__.py
    setup.py
    requierment.txt         # Require package1
    commons/
        __init__.py
        setup.py
        requirement.txt
        Common_module.py
    package1/
        __init__.py
        setup.py
        requirement.txt      # Require commons
        Package1_module.py

当我执行pip install -r requierment.txt -t ./installation时,我希望创建一个文件夹安装,其中我有package1commons,但似乎它没有解决依赖关系package1仅使用package1离开安装。

如何重复解决依赖关系?

经过一些研究后,我发现requierment.txt应该列出所有依赖项,但我真的不想要那样。

所以我尝试了以下内容:

from distutils.core import setup

required = []
with open('requirements.txt') as f:
     for line in f.readline():
         if not line.startswith('#'):
             required.append(line.rstrip())

setup(...
    install_requires=required)

但现在,即使required是本地路径列表,它也会在Internet上查找我的依赖项,而不是在我的文件夹中。

它是我的问题的简化视图,我可以稍微更改我的项目achritecture但是假设第一个requirements.txt无法知道子包的依赖关系(如commons包)

有一种很好的方法可以重复解决依赖关系吗?

谢谢!

0 个答案:

没有答案