Выполнение сценариев pipfile
Как я могу выполнить сценарии, определенные в Pipfile?
Следуя синтаксису, найденному здесь, я определил раздел скриптов в моем pip-файле следующим образом:
[scripts]
tests = "bash ./run-tests.sh"
После запуска $ pipenv install
как я могу назвать tests
скрипт?
Я попробовал следующее без успеха:
$ tests
$ pipenv tests
$ pipenv run tests
$ pipenv shell
(virtual env) $ tests
5 ответов
У меня была та же проблема, и мне удалось ее решить благодаря обсуждению этого вопроса.
Короче говоря, я только обновил pipenv глобально, прежде чем начать свой проект, а не локально. Так что я все еще использовал старую версию.
Чтобы правильно обновить версию pipenv
что вы используете, вы должны обновить pipenv
также для пользователя, которого вы используете для проекта. Отсюда:
$ sudo pip install pipenv --upgrade --user
решил мою проблему.
Пусть эта глупая ошибка станет моим первым ТАКИМ вкладом и моим вечным позором.
Вы также можете запустить:
pipenv sync
Потом:
pipenv shell
(Источник: https://pipenv-fork.readthedocs.io/en/latest/advanced.html)
Канонический ответ на это будет простым:
pipenv run tests
Синтаксис вашего Pipfile правильный, и это единственный способ запуска скриптов.
Если
pipenv run tests
не работает, что-то еще не так с вашей настройкой.
Убедитесь, что вы когда-либо запускали
pipenv install
, вы можете безопасно запустить это снова, чтобы быть уверенным, или
pipenv update
если вам нужно снова заблокировать и синхронизировать.
Также убедитесь, что когда вы вводите свою оболочку, вы используете правильный pipenv. Некоторые настройки Python в конечном итоге заставляют вас вызывать его одним из следующих способов:
$ pipenv
$ python3 -m pipenv
$ pyenv exec python -m pipenv
$ ~/.local/bin/pipenv
Это происходит потому, что у большинства пользователей может быть и, вероятно, есть более одного интерпретатора python, более одного pip, более одного pipenv и т. д., таким образом, что вы никогда не узнаете, какие site-packages и virtualenvs даст вам простой ввод.
Например, если вы вводите эти команды в Linux:
$ pip install --user pipenv
$ sudo pip install pipenv
$ python3 -m pip install --user --upgrade pip pipenv
$ pip3 install pipenv
У вас будет по крайней мере две установки pipenv в вашей системе, и какая из них вызывается при вводе
pipenv
будет зависеть от того, как ваша операционная система обработала эти команды и какие триггеры после установки были выполнены.
Было бы полезно знать, что вы получаете с каждой из ваших попыток помочь устранить неполадки, которые могут быть неправильными.
https://docs.pipenv.org/advanced/ дает краткое введение в сценарии и указывает, что ваша попытка pipenv run tests
это правильный способ использовать скрипт из вашего Pipfile.