【发布时间】:2017-03-24 13:45:44
【问题描述】:
我有一大块用 Python 2.7 编写的代码。我的最终目标是在 Python 2 和 3 中都有工作版本,它们都可以通过 pip 安装并在 GitHub 上可用。这方面的标准做法是什么?
我为mypackage做了什么
- 运行
2to3包,它为我提供了两个不同版本的代码(Python 2.7 和 3.4) - 按照惯例,新功能将添加到 3.4 而不是 2.7,但错误修复将推送到 2.7
- 为两者创建了
setup.py脚本 - 使用 Python 3.4 =
mypackage1.0 版和 Python 2.7 =mypackage0.9 版上传到 pip。 - 已将 3.4 版本上传到 GitHub,但添加了一个文件夹
python27,其中包含 Python 2.7 代码
所以现在您可以pip 分别安装 3.4 和 2.7 版本,使用
> pip install mypackage
> pip install "mypackage < 1.0"
这一切似乎都令人费解。问题:
- 执行此操作的标准方法是什么?
- 我真的需要两个不同版本的代码吗?几年后,由于依赖原因,我有点犹豫要不要使用
six。 - pip 是否足够聪明,可以根据绑定的 Python 版本下载正确的 Python 版本?
- 如何在 GitHub 上处理这个问题?代码的两个版本使这变得困难。
【问题讨论】:
-
这样的问题太宽泛了,基于意见的SO,看看stackoverflow.com/help/how-to-ask
-
@pvg 这个意见的依据是什么?存在许多跨 Python 2 和 3 兼容的包。它们如何处理代码的分发和维护?
-
你看过文档了吗? SO是针对特定问题的,这绝对是广泛的,多个问题,其中一些非常基于意见,即如何在github上处理它。您最好的选择可能是从兼容 2 和 3 的软件包开始,看看它是如何工作的,然后返回您遇到的具体问题。或者做其他研究。但同样,请查看 SO 文档以了解适合 SO 的问题类型。这个,以目前的形式,没有。