Запуск сценариев pipenv на системном python

#python #pipenv

Вопрос:

Pipenv позволяет использовать системный Python вместо создания virtualenv для установки пакетов:

 $ pipenv install --system
 

Но если я это сделаю, последующие pipenv run s попытаются создать virtualenv вместо использования системного Python. В частности, меня интересует использование скриптов Pipenv:

 $ pipenv run postinstall
Creating a virtualenv for this project...
 

Есть ли способ использовать системный интерпретатор Python для сценариев Pipenv?

Ответ №1:

Насколько мне известно, невозможно запускать сценарии внутри Pipfile с pipenv , если вы их не используете

Сопровождающие pipenv решили отказаться от такой функции пару лет назад (например, см. Обсуждение на странице Добавить флаг —system в pipenv run #2693), и я не могу найти ничего нового, что говорило бы об обратном.

Если вы хотите запустить скрипт при установке вашей системы, просто запустите его в обычном режиме в терминале. Если вы работаете без виртуальной среды, вам не нужно pipenv запускать какие-либо сценарии. Например, если вы определились app = "uvicorn my_app.main:app --port 8080" в script разделе и выполнили установку системы, вы можете затем просто позвонить uvicorn my_app.main:app --port 8080 в терминал.

Я понимаю, что есть некоторое удобство для определения некоторых сценариев/псевдонимов в Pipfile . Но если они вам нужны и за пределами виртуальных сред, было бы лучше просто создать реальные сценарии оболочки. И если вы хотите, чтобы pipenv run функциональность продолжала работать, просто убедитесь, что эти сценарии определены в Pipfile вызове сценариев оболочки, чтобы избежать дублирования кода.

Ответ №2:

При настройке pipenv вы можете указать версию Python, используя: pipenv --python 3.6 , для использования Python3.6.

Редактирование файла Pip также работает, изменяя:

 [requires]
python_version = "3.6.6"
 

к конкретной версии Python, которую вы хотите.

Если вы сделали все это и все еще испытываете проблемы с доступом к правильной версии Python изнутри pipenv shell , то вы можете проверить свой .bashrc файл, чтобы убедиться, что у вас нет alias для конкретной версии Python.

Комментарии:

1. Я знаю, что могу указать версию Python, и я не пытаюсь ее использовать pipenv shell .