Однако до сих пор мне нравится pipenv, и мне интересно использовать его для поддержки как python2.7, так и python3.7.
Я пишу пакет python, который хочу распространять через внутренний репозиторий pypi, и я хотел бы поддерживать как python2.7, так и python3.7 (до сих пор я разрабатывал против python2.7). Учитывая, что я должен указать версию Python в Pipfile, я делаю логический вывод, что мне нужно несколько Pipfiles.
Я думаю, что я буду структурировать свой проект следующим образом:
root
|
|-python2.7
| |-Pipfile
|-python3.7
| |-Pipfile
Есть какие-нибудь мысли по этому поводу? Это то, что другие сделали бы?
Предполагая, что я собираюсь это сделать, мне нужно будет указать, какой Pipfile использовать при запуске тестов и сборке пакета. В соответствии с https://pipenv.kennethreitz.org/en/latest/advanced/#configuration-with-environment-variables я могу использовать env var PIPENV_PIPFILE, чтобы указать местоположение Pipfile. Это нормально, я просто удивлен, что нет возможности указать местоположение Pipfile в командной строке (например, pipenv --pipfile-location
). Стоит ли мне запрашивать такую функцию?
Любые комментарии к вышеизложенному приветствуются.
Хммм... Я переосмыслил после прочтения:
The inclusion of [requires] python_version = "3.6" specifies that your application requires this version of Python, and will be used automatically when running pipenv install against this Pipfile in the future (e.g. on other machines). If this is not true, feel free to simply remove this section.
https://pipenv.readthedocs.io/en/latest/basics/#specifying-versions-of-python
Теперь у меня есть только один Pipfile. Я создаю свой код в контейнерах докеров, поэтому я выбираю образ с правильной версией python (https://hub.docker.com/_/python?tab=tags) по мере необходимости.
Также:
Do not keep Pipfile.lock in version control if multiple versions of Python are being targeted.
https://pipenv.readthedocs.io/en/latest/basics/#general-recommendations-version-control