让Python软件包以其他名称自行安装

Ram*_*hum 5 python packaging setuptools python-3.x

我正在开发一个名为的软件包garlicsim。(网站。)该软件包用于Python 2.X,但我还在另一个名为garlicsim_py3。(1)的派生类上提供了Python 3支持。

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

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

try:
    import garlicsim
except ImportError:
    import garlicsim_py3 as garlicsim
Run Code Online (Sandbox Code Playgroud)

但是我不希望这些模块的开发人员这样做。

有没有办法garlicsim_py3将自己安装在别名下garlicsim?我想要的是让Python 3用户能够一直import garlicsim引用该模块garlicsim,但事实确实如此garlicsim_py3

我知道Distribute项目做的是这样的:他们制造了它,所以您可以导入setuptools它,并将其重定向到他们的代码中。我不知道他们是怎么做到的。

有任何想法吗?


(1)我已经决定在分支上而不是在相同的代码库中支持Python 3;对我而言,重要的是代码库必须整洁,并且我真的不想引入兼容性黑客。

Ram*_*hum 1

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