【发布时间】:2020-01-22 09:52:43
【问题描述】:
假设我有一个python包blah
我可以通过两种方式安装它:
pip install git+https://github.com/blah/blah.git@blah(使用 github 仓库)
和
pip install blah(使用 pypi 存储库)
有没有办法确定用户在setup.py 中安装包的方式是什么?
所以我基本上可以做类似的事情:
if INSTALLING_FROM_PYPI:
# some logic
if INSTALLING_FROM_SOMEWHERE_ELSE:
# some other logic
【问题讨论】:
-
模块之间有什么区别吗?
-
不,pypi上的包和github上的包是100%一样的,包括setup.py脚本。我可以通过在 github 上使用不同的 setup.py 并在 pypi 上使用不同的 setup.py 来“解决”这个问题,但维护起来会相当乏味。
-
我能看到的唯一方法是在 git 版本中创建一个像
FROM-GIT这样的空白对象,然后尝试从代码中导入它。 -
@JammyDodger "创建一个像 FROM-GIT 这样的空白对象" 不需要——只测试
.git目录。 -
但是如何获得该对象的路径?如,我是否保证
setup.py在特定位置执行,以便我可以获得 FROM-GIT 文件的相对路径?
标签: python-3.x pip setuptools setup.py pypi