pipenv: работает только в установленной папке? - PullRequest
0 голосов
/ 07 мая 2018

Pipenv, кажется, работает только в каталоге, где живет Pipfile. Может быть, я пытаюсь использовать его таким образом, для которого он не предназначен.

Например, я установил инструмент под названием «leo» (редактор), и неудивительно, что я перейду ко многим папкам и запусту pipenv run Leo, и он начнет устанавливать другую виртуальную среду. Какой обходной путь?

Ответы [ 5 ]

0 голосов
/ 02 июля 2019

Вы можете запустить: (из любого каталога)

pew workon my-virtualenv-of-choice
pipenv run leo

Насколько я понимаю, вы можете выполнять команды, такие как запуск текстового редактора с pipenv, только если вы уже используете виртуальную среду с pipenv. Если нет, он создаст новый виртуальный env в текущем каталоге и затем запустит команду в нем.

Результат pipenv --help говорит для команды запуска:

run Создает команду, установленную в virtualenv.

0 голосов
/ 14 марта 2019

В каталоге, где находится Pipfile, выполните

pipenv --venv

Это покажет путь, где находится виртуальный env. Скопируйте этот путь, например /Users/yourname/.local/share/virtualenvs/yourproject-8XhejQjj, и в любой другой папке вы можете активировать venv с помощью source, например ::

source /Users/yourname/.local/share/virtualenvs/yourproject-8XhejQjj/bin/activate

Это покрыто Доклад Кен Рейтц о PyData 2018 года .

0 голосов
/ 11 мая 2018

Да, Pipenv работает только в каталоге, в котором находится Pipfile (или его подкаталогах).

Если вам нужен способ установки программ Python в их собственную виртуальную среду, но при этом вы можете использовать их где угодно, вы можете использовать pipsi - после установки вы можете просто сделать pipsi install <package> для установить пакет Python в его собственный virtualenv.

(Если вы чувствуете себя смелым, мой форк pipsi содержит несколько исправлений и улучшений, которые еще не попали в основной репозиторий. Вы можете установить его, передав --src git+https://github.com/anowlcalledjosh/pipsi@develop#egg=pipsi get-pipsi.py скрипт.)

0 голосов
/ 07 марта 2019

Не прямой ответ на ваш вопрос, но я также столкнулся с проблемой запуска консольного приложения из другого каталога. Я не уверен, является ли это лучшим / "наиболее переносимым" решением, но если вы довольны наличием сценария bash в качестве промежуточного звена:

#!/usr/bin/env bash

CURRENT="$(dirname "$0")"
ROOT_DIR="$CURRENT/.."

(cd $ROOT_DIR && pipenv run python3 app/console.py "$@")

и вот как выглядит структура каталогов моих проектов:

.
├── Pipfile
├── Pipfile.lock
├── app
│   ├── __init__.py
│   └── console.py
└── bin
    └── console

и теперь вы можете запустить /absolute/path/to/bin/console из любого места.

0 голосов
/ 11 мая 2018

Гуглить очень сложно, но я нашел лучшее решение.

Чтобы легко активировать виртуальную среду в любом месте с помощью pipenv, вы можете использовать pew .

Как только вы pip устанавливаете pew , вы можете легко выполнить "pew workon myvenv".

Pew использует pipenv под капотом, и он работает и на Windows.

...