Временное использование релизной версии 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.

Другие вопросы по тегам