我的软件包X的setup.py使用setuptools通过extras_require
参数可选地安装额外的软件包Y。
现在,包装Y从PyPi消失了,据我所知,从可见的互联网上消失了。 easy_install X[Y]
error: Could not find suitable distribution for Y
失败。
但是,我仍然有Y的tarball的本地副本。 Y是一个纯Python包。
修改setup.py以允许此(本地?)可选附加内容的最佳方法是什么?
答案 0 :(得分:1)
您可以继承setuptools.Command
,然后重载默认的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,
}
)
我过分简单化了,但这是基本的要点。
答案 1 :(得分:1)
我通过setuptools的dependency_links
选项找到了一个快速的解决方法。
http://URL_Y
。dependency_links = ['http://URL_Y'],
添加到我的setup.py。现在easy_install X[Y]
正常工作,我无需在任何地方注册Y.我会在得到正确修复后立即将其从URL_Y中删除。