Выполнение сценариев 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 shell 

$ pipenv run tests

Вы также можете запустить:

      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.

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