Временное использование релизной версии Python-кандидата в tox
Я использую tox
чтобы проверить мои пакеты Python. Теперь, когда в Python 2.7.13 есть кандидат на выпуск, как мне протестировать эту версию, используя tox
без немедленной замены текущей версии Python 2.7 для обычного использования?
Я знаю, как указать путь для Python при создании virtualenv
и тогда я могу установить и запустить py.test
, Tox создает свой собственный virtualenv, и я не знаю, как повлиять на версию Python, установленную за пределами выбора py27
, py26
, py35
,
Как я могу решить это?
1 ответ
Вы можете повлиять на это, используя PATH, расширив PATH перед вызовом tox (по крайней мере, в Linux, возможно, не в Windows).
Чтобы получить более детальный контроль и заставить его работать в Windows (где AFAIK вы не можете установить переменную среды для использования одной команды, как в Unix/Linux), вы можете использовать пакет расширения tox tox-globinterpreter
(отказ от ответственности я являюсь автором этого пакета), который вы можете установить с pip
,
Пакет добавляет --scan
возможность tox
который выписывает явное отображение из py27
, py36
и т. д. для исполняемого файла Python.
Например, я делаю:
tox --scan /opt/python/{2,3}.?/bin/python /opt/python/pypy2/bin/pypy
в моей системе на основе Linux, где /opt/python/XY - это ссылка на последнюю выпущенную версию Python, установленную в /opt/python/XYZ (или последнюю версию в случае версии для разработки, такой как 3.6), это дает в качестве вывода:
interpreters:
python2.6 /opt/python/2.6/bin/python
python2.7 /opt/python/2.7/bin/python
python3.2 /opt/python/3.2/bin/python
python3.3 /opt/python/3.3/bin/python
python3.4 /opt/python/3.4/bin/python
python3.5 /opt/python/3.5/bin/python
python3.6 /opt/python/3.6/bin/python
pypy /opt/python/pypy2/bin/pypy
Когда я изменяю сканирование на:
tox --scan /opt/python/2.6/bin/python /opt/python/2.7.13*/bin/python \
/opt/python/3.?/bin/python /opt/python/pypy2/bin/pypy
Я получил:
interpreters:
python2.6 /opt/python/2.6/bin/python
python2.7 /opt/python/2.7.13rc1/bin/python
python3.2 /opt/python/3.2/bin/python
python3.3 /opt/python/3.3/bin/python
python3.4 /opt/python/3.4/bin/python
python3.5 /opt/python/3.5/bin/python
python3.6 /opt/python/3.6/bin/python
pypy /opt/python/pypy2/bin/pypy
А также tox -e py27
будет использовать версию релиза 2.7.13. Вы можете сохранить файл конфигурации (в ~/.config/tox
или же %APPDATA%\tox
) если переключаться назад и вперед, но перезапуск сканирования выполняется довольно быстро, поэтому я бы сделал для этого файл сценария оболочки /alias/batch.