gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 01:22:54 25 4
gpt4 key购买 nike

我通常使用 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...似乎工作正常。

最佳答案

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

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

看 6 个并在 python 3 中工作可能比为旧安装转换回 2.7 更值得。

另见 here对于如何使用 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 安装等。

免责声明:我是一些即将出版的 enhancements 的作者到 python 启动器以稍微扩展上述选项。

关于python - 编写脚本时在 python 2 和 3 版本之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18519309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com