【发布时间】:2018-07-31 09:26:56
【问题描述】:
为了这个问题,我们假设在一个 git 存储库下,我正在开发 2 个独立的包。考虑以下结构:
my_repo/
package1/
...some modules
package2/
...some modules
setup.py
setup.py 代码为:
from setuptools import setup
setup(
name='Cool_package',
version=1.0,
description='...',
author='Myself',
packages=['package1', 'package2'],
install_requires=[
...
]
)
我正在使用此命令以所需方式安装软件包(避免 python setup.py 安装或开发):
pip install -e .
并且 package1 和 package2 都已安装。
我的问题是,考虑到上述结构要求他们共享一个 setup.py 文件,有没有办法只安装两者中的一个(用户决定哪一个)?
同样,我知道这种结构并不理想(理想情况下,我会将包分成 2 个单独的存储库)。
非常感谢!
【问题讨论】:
-
我可以在这里看到 2 个选项:传递一些 parameter into
setup.py(从未尝试过,可能太难了)或为每个包写setup.py并分别调用它们 -
你会在哪里找到这 2 个 setup.py 文件?在每个包主目录下(package1,package2)?
-
创建当前包目录子目录(如
package1目录中的package1)并将每个setup.py脚本放在超级目录中,层次结构示例:my_repo/package1/ setup.py package1/...some modules和my_repo/package2/ setup.py package2/...some modules跨度> -
@NI6 顺便说一句,在你提到的问题中,“在一个 git 存储库下,我正在开发 2 个独立的包”。但是,根据
setup.py文件,您有 one 包(\wrt 如何配置 Python 包)恰好安装了两个包(\wrtimport语句)。关于包分发,您只有一个包。如果你想要两个不同的包,你需要两个不同的脚本。另请注意,包是由它们的名称标识的,而不是它们实际打包的内容。此外,对于-e模式,它甚至都没有关系,因为使用了符号链接。
标签: python setuptools setup.py