Тестирование скрипта Python в конкретной версии - PullRequest
2 голосов
/ 29 ноября 2010

В настоящее время на моем Mac установлен Python 2.6.2.Я пишу скрипт, который ДОЛЖЕН работать на Python 2.5.2.Итак, я хочу написать скрипт на python, и тест специально для 2.5.2, а НЕ 2.6.2.

Я смотрел на virtualenv, но, похоже, это не решило мою проблему.Я запустил python virtualenv.py TEST, который сделал TEST dir, но в нем был Python 2.6.Есть ли способ заставить virtualenv использовать версию Python, отличную от установленной по умолчанию на моей машине?Есть ли другой способ использовать #! в качестве первой строки скрипта Python?Как бы я это сделал?

Ответы [ 5 ]

9 голосов
/ 29 ноября 2010

Выезд tox ;Он предназначен именно для этого.

2 голосов
/ 29 ноября 2010

Вы можете настроить изолированную среду с различными версиями Python, используя virtualenv. Как 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

Надеюсь, что это может помочь.

1 голос
/ 29 ноября 2010

Вы можете просто установить Python 2.5.2.

У меня есть 3 разные версии Python, установленные на моем Lucid, и они используют разные ссылки под /bin/, поэтому легко назвать конкретную версию

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

0 голосов
/ 12 апреля 2016

Используя '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

Существует также способ создания виртуальной среды с ужедоступные пакеты сайта.

0 голосов
/ 29 ноября 2010

попробуй #!/path/to/your/python/version

Но убедитесь, что вы выполняете скрипт из терминала, и сделаете его исполняемым заранее: chmod 755 myscript.py

...