我们有一个很大的git结构,我们想在其中创建一些python库,其中一些在引用另一个。由于我们一次拉动所有git,因此我们不希望安装工具通过VCS存储库引用相互引用。
目前我能做的是
from setuptools import setup
import setuptools.command.install
import pip._internal
import os
try:
era_root = os.environ.get("ERA_ROOT")
if not os.path.isdir(era_root):
raise ValueError("ERA_ROOT must point to a valid directory")
except KeyError as k:
raise KeyError("Please specify the ERA_ROOT environment variable")
protobufsDependency = "{}/Products/PythonLibs/Protobufs".format(
era_root)
class my_install(setuptools.command.install.install):
def run(self):
pip._internal.main(['install', '-I', protobufsDependency])
setuptools.command.install.install.run(self)
setup(name='replication_tools',
version='1.0',
packages=["FakeAgent", "EventGenerator"],
cmdclass={"install": my_install},
)
但是这是有问题的,因为如果有人使用--user或其他一些参数安装此库,则必须在pip._internal.main中手动命名它们。所以我的问题是,有什么方法可以直接使用setuptools.setup引用protobufsDependency,就好像它是一个url包一样? 诸如此类的东西(因为它不起作用,但类似的东西)
setup(name='replication_tools',
version='1.0',
packages=["FakeAgent", "EventGenerator"],
install_requires=[
protobufsDependency
]
)
答案 0 :(得分:0)
好的,我似乎可以使用直接引用链接
setup(name='replication_tools',
version='1.0',
packages=["FakeAgent", "EventGenerator"],
install_requires=[
"protobufs-generated @ file://C:/PathToMyLib"
]
)