测试特定版本中的python脚本

时间:2010-11-29 07:27:54

标签: python tox

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

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

5 个答案:

答案 0 :(得分:9)

查看tox;它的设计就是为了做到这一点。

答案 1 :(得分: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

希望这可能会有所帮助。

答案 2 :(得分:1)

您可以安装Python 2.5.2。

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

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

答案 3 :(得分:0)

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

但请确保您从终端执行脚本,然后将其设为可执行文件:chmod 755 myscript.py

答案 4 :(得分:0)

使用' 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

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