我正在开发一个名为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;对我来说重要的是代码库是干净的,我真的不想引入兼容性黑客。
答案 0 :(得分:1)
最终我决定不这样做,只是让两个项目具有相同的包名称,即使它们具有不同的PyPI名称。