让Python包以不同的名称安装自己

时间:2010-05-27 18:15:21

标签: python python-3.x packaging setuptools

我正在开发一个名为garlicsim的软件包。 (Website。)该软件包适用于Python 2.X,但我也在名为garlicsim_py3的不同分支上提供Python 3支持。(1)

因此,这两个软件包并存在PyPI上,Python 3用户安装garlicsim_py3,Python 2用户安装garlicsim

问题是:当第三方模块想要使用garlicsim时,他们应该有一个包名称,而不是两个。当然,他们可以这样做:

try:
    import garlicsim
except ImportError:
    import garlicsim_py3 as garlicsim

但我不想让这些模块的开发人员这样做。

garlicsim_py3是否有办法在别名garlicsim下安装自己?我想要的是让Python 3用户能够import garlicsim并始终将该模块称为garlicsim,但它确实是garlicsim_py3

我知道Distribute项目的行为是这样的:他们这样做可以导入setuptools并将其重定向到他们的代码中。我不知道他们是怎么做的。

有什么想法吗?


(1)我已经决定在fork而不是相同的代码库中支持Python 3;对我来说重要的是代码库是干净的,我真的不想引入兼容性黑客。

1 个答案:

答案 0 :(得分:1)

最终我决定不这样做,只是让两个项目具有相同的包名称,即使它们具有不同的PyPI名称。