Подтвердить что ты не робот

Как получить virtualenv для работы с рыбным снарядом

Я пытаюсь заставить virtualenv работать с рыбной оболочкой. Я установил virtualenv и отлично работает с bash и zsh. Однако выполнение следующей команды возвращает fish: Unknown command 'source':

$ source ~/path/to/bin/activate

Кто-нибудь знает, как заставить virtualenv и рыбную раковину работать вместе. Спасибо заранее.

4b9b3361

Ответ 1

Вам не нужно активировать, чтобы использовать virtualenv, это удобно. Вы можете просто использовать virtualenv напрямую:

virtualenv venv
./venv/bin/pip install foo

Вы пробовали рыбу, используя:

. venv/bin/activate.fish

Вероятно, он не так широко используется, как bash, поэтому может иметь проблемы - просмотр истории фиксации показывает недавнее исправление:

https://github.com/pypa/virtualenv/blob/master/virtualenv_embedded/activate.fish

Ответ 2

Вы также можете использовать это: https://github.com/adambrenecki/virtualfish

Он позволяет вам активировать virtualenv, набрав это:

vf activate <my_env>

Ответ 4

Если вы не можете использовать activate.fish, вы можете просто добавить каталог bin в свой PATH:

set -gx PATH /path/to/virtualenv/bin $PATH

Это почти все activate.fish делает (ну, не совсем, это также unsets PYTHONHOME, (который не был задан заранее, когда я его пробовал, YMMV), и он пытается запутаться с вашим fish_prompt).

В качестве альтернативы: я бывший пользователь Bash, который начал использовать Fish и пропустил Doug Hellman virtualenvwrapper, поэтому я только сегодня начал работать над замена под названием virtualfish - у нее есть несколько удобных ярлыков, которые могут вам пригодиться, хотя они нигде не близки к VEW.

Ответ 5

Для virtualenv у fish есть отдельный файл активации в каталоге bin с расширением .fish.

Так что вам придется сделать:

$ source ~/path/to/bin/activate.fish

Ответ 6

(Этот поток кажется закрытым, но я нашел решение:)

Чтобы ввести новую рыбную оболочку с envrionment venv:

begin; set -lx PATH (realpath ./venv)/bin $PATH; fish; end

когда каталог venv ./venv.

Чтобы отключить, просто ctrl-d или exit.


Другое решение, которое не вызывает дочернюю оболочку.

Сделайте и введите envrionment в Вене:

python3 -m venv ./venv
set -lx PATH (realpath ./venv)/bin $PATH

Выход из среды:

set -lx PATH $PATH[2..-1]