在Python中安装本地附加程序
my package X的setup.py使用setuptools通过在Python中安装本地附加程序,python,setuptools,easy-install,Python,Setuptools,Easy Install,my package X的setup.py使用setuptools通过extras\u require参数选择性地安装额外的软件包Y 现在,Y包从PyPi中消失了,据我所知,也从可见的互联网上消失了轻松安装X[Y]失败,出现错误:找不到适合Y的发行版 然而,我仍然有一份Y's tarball的本地副本。Y是一个纯Python包 修改setup.py以允许此(本地?)可选额外设置的最佳方法是什么 编辑:修复是临时的,直到我找到一个合适的替代品。我不想自己开始正式维护Y:)您可以创建子类,然后重载
extras\u require
参数选择性地安装额外的软件包Y
现在,Y包从PyPi中消失了,据我所知,也从可见的互联网上消失了<代码>轻松安装X[Y]失败,出现错误:找不到适合Y的发行版
然而,我仍然有一份Y's tarball的本地副本。Y是一个纯Python包
修改setup.py以允许此(本地?)可选额外设置的最佳方法是什么
编辑:修复是临时的,直到我找到一个合适的替代品。我不想自己开始正式维护Y:)您可以创建子类,然后重载默认的
install
命令。然后您可以让它执行安装依赖项的子流程。这是一个黑客,但这正是你所要求的
在setup.py中:
from setuptools import Command
class MyInstallCommand(Command):
# Overload the 'install' command to do default install but also install
# your provided tarball. Blah blah blah read the docs on what to do here.
setup(
name='mypackage',
# etc ... and then...
# Overload the 'install' command
cmdclass={
'install': MyInstallCommand,
}
)
我过于简单化了,但这是基本要点。我通过setuptools的
依赖关系链接
选项找到了一个快速解决方法
http://URL_Y
dependency\u links=['http://URL_Y“],
到my setup.py现在
easy\u install X[Y]
可以工作了,我不需要在任何地方注册Y。一旦我有了合适的解决方案,我将立即从URL_Y中删除它。thx@jathanism,如果我的解决方案出现问题,我将尝试这个(重炮!):)