【问题标题】:Create a pip package for different versions of Python为不同版本的 Python 创建 pip 包
【发布时间】:2017-03-24 13:45:44
【问题描述】:

我有一大块用 Python 2.7 编写的代码。我的最终目标是在 Python 2 和 3 中都有工作版本,它们都可以通过 pip 安装并在 GitHub 上可用。这方面的标准做法是什么?

我为mypackage做了什么

  1. 运行 2to3 包,它为我提供了两个不同版本的代码(Python 2.7 和 3.4)
  2. 按照惯例,新功能将添加到 3.4 而不是 2.7,但错误修复将推送到 2.7
  3. 为两者创建了setup.py 脚本
  4. 使用 Python 3.4 = mypackage 1.0 版和 Python 2.7 = mypackage 0.9 版上传到 pip。
  5. 已将 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 的问题类型。这个,以目前的形式,没有。

标签: python github pip six


【解决方案1】:

没有。 如果您在同一环境中有 python 2 和 3,则需要使用 pip2pip2.7 用于 python2pip3pip 用于 python3

或者在每个环境中调用pip作为一个模块

  • py -3.4 -m pip install mypackage
  • py -2.7 -m pip install mypackage

【讨论】:

    猜你喜欢
    • 2023-04-11
    • 2020-05-01
    • 2019-03-26
    • 1970-01-01
    • 2022-06-15
    • 2010-12-13
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多