【问题标题】:Testing a python script in a specific version在特定版本中测试 python 脚本
【发布时间】:2010-11-29 07:27:53
【问题描述】:

我目前在我的 Mac 上安装了 Python 2.6.2。我正在编写一个必须在 Python 2.5.2 上运行的脚本。所以我想写一个python脚本,专门针对2.5.2而不是2.6.2进行测试。

我正在查看 virtualenv,但它似乎并没有解决我的问题。我运行了python virtualenv.py TEST,它创建了一个 TEST 目录,但其中包含 python 2.6。有没有办法让 virtualenv 使用与我机器上安装的默认版本不同的 python 版本?是另一种使用#! 作为python 脚本第一行的方法吗?我该怎么做?

【问题讨论】:

    标签: python tox


    【解决方案1】:

    查看tox;它旨在做到这一点。

    【讨论】:

      【解决方案2】:

      您可以使用 virtualenv 设置具有不同 python 版本的沙盒环境。正如 Kable 所做的那样,安装 2.5。您要测试的版本。然后创建你的虚拟环境:

      virtualenv --p=python2.5 myapp
      

      要获得一个干净的环境,您可以在上面的命令中使用 --no-site-packages 开关。在尝试模拟新的全新设置时非常方便。现在激活你的 virtualenv:

      source myapp/bin/activate
      

      如果您检查 python 版本,您现在应该得到 2.5.x 版本:

      python -V
      

      现在您可以按照通常的方式将模块安装到您的虚拟环境中:

      easy_install ... 
      pip ...
      

      退出虚拟环境:

      deactivate
      

      希望这可能会有所帮助。

      【讨论】:

        【解决方案3】:

        您可以只安装 Python 2.5.2。

        我的 Lucid 上安装了 3 个不同版本的 Python,它们在 /bin/ 下使用不同的链接,因此很容易调用特定版本

        python -> python3 ->python3.1
        python2 -> python2.7
        python2.5

        【讨论】:

          【解决方案4】:

          试试#!/path/to/your/python/version

          但请确保从终端执行脚本,并事先使其可执行:chmod 755 myscript.py

          【讨论】:

            【解决方案5】:

            使用'virtualenv',您可以在一台机器上拥有不同的隔离 Python 环境。您还可以随时在不同的 Python 解释器版本之间切换。

            什么是 virtualenv?

            虚拟环境是 Python 的独立工作副本,它允许您处理特定项目而不必担心影响其他项目。它支持 Python 的多个并行安装,每个项目一个。它实际上并没有安装单独的 Python 副本,但它确实提供了一种巧妙的方法来隔离不同的项目环境。

            如何安装?

            pip install virtualenv
            

            为 python 2.7 创建虚拟环境:

            root:~# which python2.7
            
            /usr/bin/python2.7
            

            root:~# which python3.4
            
            /usr/local/bin/python3.4
            

            您也可以使用您选择的 Python 解释器:

            root:~# virtualenv -p /usr/bin/python2.7 Vpy27
            
            Running virtualenv with interpreter /usr/bin/python2.7
            
            New python executable in /root/Vpy27/bin/python2.7
            
            Also creating executable in /root/Vpy27/bin/python
            
            Installing setuptools, pip, wheel...done.
            

            要开始使用虚拟环境,需要激活它:

            root:~# source Vpy27/bin/activate
            

            当前虚拟环境的名称现在将出现在提示符的左侧:

            (Vpy27) root:~# python -V
            Python 2.7.3
            

            照常安装包,例如:

            (Vpy27) root:~# pip install junos-eznc    >> All pip installs done here, will be available only in this environment.
            

            如果您暂时完成了在虚拟环境中的工作,您可以将其停用:

            (Vpy27) root:~# deactivate   
            

            为 python 3.4 创建虚拟环境:

            root:~# which python3.4
            
            /usr/local/bin/python3.4
            
            root:~# virtualenv -p /usr/local/bin/python3.4 Vpy34
            
            root:~# source Vpy34/bin/activate
            
            (Vpy34) root:~# python -V
            Python 3.4.4
            

            还有一种方法可以使用现有的站点包创建虚拟环境。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-09-02
              • 2011-08-23
              • 2012-06-25
              • 2021-07-10
              • 1970-01-01
              • 1970-01-01
              • 2014-05-26
              • 2018-09-03
              相关资源
              最近更新 更多