5

我正在开发一个名为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

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

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

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

有任何想法吗?


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

4

1 回答 1

1

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

于 2010-05-28T19:57:10.153 回答