5

我通常使用 python 2.7 进行开发,但想开始在 python 3.x 中创建一些工具。什么是让两者并排运行的最简单方法,同时保持对我安装的库的一些表面上的控制......

如果我pyenv用来在版本之间切换,它会传播到通用的 shebang 行吗?就像是

#!/usr/bin/env python

甚至更好,我可以指定shebang中的哪个python吗?

#!/usr/bin/env python3

我期待很多“使用virtualenv”回复。这真的是唯一的方法吗?我觉得我想在我的系统上使用我安装的任何库的“基础”python,这样我就可以通过输入简单的东西在两个环境之间进行切换,比如pyenv global 3.2.3

我目前正在使用 OSX,Mountain Lion。


为了更好地解释它,我有两个替代问题:

  • 如果我使用类似的东西virtualenv,我会失去交替运行 python2 和 python3 脚本的能力,而不改变环境(即,仅通过 shebang)吗?

  • 相反,如果我使用两个独立的版本安装,我如何控制/知道将安装什么pipeasy_install例如。


更新:目前python3在shebang行中使用,并pip3用于将软件包安装到python3 ...似乎工作正常。

4

1 回答 1

3

您有一些可能的方法与 os 略有不同:

  1. 调用 python 2 作为 python 和 3 作为 python3
  2. .py 和 .py3 的扩展名
  3. 虚拟环境
  4. 用于切换环境的脚本或批处理文件。我使用它来针对不同版本的 python 2 测试我的代码。请注意,您可以同时在不同的命令会话中设置不同的环境。
  5. 在虚拟机中测试。
  6. 使用允许您在项目或调试会话的基础上指定 python 版本的 IDE 我使用 WingIDE,但它不是唯一允许这样做的。

看看 6 并在 python 3 中工作,而不是为较旧的安装返回转换为 2.7,这可能会让您受益匪浅。

另请参阅此处,了解如何在带有 virtualevn 和不带 virtualevn 的 python 3 下安装 python 3 库(根据需要修改版本号)。

更新 - windows python 启动器

此外,在 Windows 上,当您安装 Python 3 时,您可以选择将 Python 启动器(py.exe 和 pyw.exe)安装到 Windows 目录。py 启动器具有以下行为:

  • py启动 python 3 交互式最新安装提示(首选 64 位)
  • py -2启动 python 2 交互式最新安装提示(首选 64 位)
  • py somescript *检查命名文件中的shebang,并根据需要使用python 2(如果没有shebang,则默认为默认值)或3启动它。
  • py -2 somescript在最新的 python 2 下启动脚本(首选 64 位)
  • py -3 somescript在 python 3 下启动脚本(首选 64 位)
  • py -3.5 somescript在 python 3.5 下启动脚本(首选 64 位)
  • py -3.5-32 somescript在python 3.5(32位)下启动脚本
  • pyw 启动器在没有控制台的情况下具有相同的行为,例如 pythonw。

将 .py 文件与 py.exe 和 .pyw 文件与 pyw.exe 相关联将导致 shebang 行受到尊重。

另外使用py -3.5-32 -m pip install some_package将专门安装some_package到 32 位 python 3.5 安装等。

免责声明:我是 python 启动器即将进行的一些增强功能的作者,以稍微扩展上述选项。

于 2013-10-19T07:36:57.327 回答