Как получить virtualenv для работы с рыбным снарядом
Я пытаюсь заставить virtualenv работать с рыбной оболочкой. Я установил virtualenv и отлично работает с bash и zsh. Однако выполнение следующей команды возвращает fish: Unknown command 'source'
:
$ source ~/path/to/bin/activate
Кто-нибудь знает, как заставить virtualenv и рыбную раковину работать вместе. Спасибо заранее.
Ответы
Ответ 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>
Ответ 3
Вы можете использовать virtualfish.
Оболочка для рыбной оболочки для Ian Bickings virtualenv, несколько свободно на основе Doug Hellmans virtualenvwrapper для совместимости с Bourne оболочки.
Источник:
https://github.com/adambrenecki/virtualfish
Docs:
http://virtualfish.readthedocs.org/en/latest/
Ответ 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]