Как использовать pipenv в сценарии оболочки Python?

Мне нужен был модуль для сценария оболочки, который я написал на Python, поэтому я использовал pipenv для его установки. Я могу выполнить команду нормально, используя:

~$ pipenv run python3 foo

Теперь, если я хочу просто запустить ~$ foo в командной строке (оболочка fish в MacOS, установленный доморощенный), как мне вызвать среду pipenv в шебанге моего скрипта Python? Или есть лучший способ?


person gtcaz    schedule 22.08.2018    source источник


Ответы (3)


С помощью pipenv-shebang вы можете запустить свой скрипт с

pipenv-shebang PATH/SCRIPT

или вы можете вставить шебанг

#!/usr/bin/env pipenv-shebang

чтобы запустить его только с PATH/SCRIPT.

person laktak    schedule 02.08.2019

Как описано здесь https://pipenv.readthedocs.io/en/latest/, вам необходимо сначала активируйте виртуальную среду. Это вызовет еще одну оболочку с активированной виртуальной средой.

$ pipenv shell

так что вы можете бежать

$ python foo

для выполнения вашего скрипта. Затем вы можете использовать

#!/usr/bin/env python

в первой строке вашего скрипта и сделайте скрипт исполняемым (chmod +x foo.py), чтобы вы могли запускать

$ ./foo

Если расположение этого скрипта является частью вашей переменной среды PATH, вы сможете запустить его сейчас.

$ foo.py

Если вам не нравится расширение, вам также придется удалить его из скрипта.

person PinoSan    schedule 16.12.2018

создать файл-оболочку, как показано ниже, работает для меня, но немного хакерским способом.

import subprocess
if __name__ == '__main__':
    subprocess.run(['pipenv', 'run', 'foo'])
person Matsumoto Kazuya    schedule 10.12.2019