python-3.x - python setuptools依赖于绝对路径
问题描述
我们有一个大的 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
]
)
解决方案
好的,看来我可以使用直接参考链接
setup(name='replication_tools',
version='1.0',
packages=["FakeAgent", "EventGenerator"],
install_requires=[
"protobufs-generated @ file://C:/PathToMyLib"
]
)
推荐阅读
- python - 将 csv 文件转换为 pointCloud 类型
- html - 在 mat-grid-list (Angular 6) 中设置单个图块的 rowHeight
- php - AJAX jQuery MySQL PHP问题插入数据库
- python - 处理列表中的字符串(Python 情绪分析)
- php - 如何将 http(s) 添加到正则表达式?
- azure - AzCopy 上传最大输出连接
- android - Android 和 Socket.io ,发送和接收数据
- dictionary - 更新 Haskell Map 中的项目,如何?
- html - 带有谷歌自定义搜索的自定义搜索框
- java - 列 ID 的增量