在编写脚本时在python 2和3版本之间切换

时间:2013-08-29 19:16:26

标签: python macos python-2.7 python-3.x virtualenv

我通常用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将安装什么。


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

1 个答案:

答案 0 :(得分:3)

你有一些可能的方法与os稍微变化:

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

    另请参阅here,了解如何使用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启动器即将发布enhancements的作者,稍微扩展了上述选项。