我正在开发一个名为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;对我来说,代码库是干净的很重要,我真的不想引入兼容性黑客。