web-dev-qa-db-fra.com

Comment faire en sorte que virtualenv fonctionne avec une coquille de poisson

J'essaie de faire en sorte que virtualenv fonctionne avec le poisson Shell. J'ai virtualenv installé et cela fonctionne très bien avec bash et zsh. Cependant, l'exécution de la commande suivante retourne fish: Unknown command 'source':

$ source ~/path/to/bin/activate

Est-ce que quelqu'un sait comment amener virtualenv et le poisson Shell à travailler ensemble? Merci d'avance.

55
drbunsen

Vous n'avez pas besoin d'activer pour utiliser virtualenv, c'est pratique. Vous pouvez simplement utiliser virtualenv directement:

virtualenv venv
./venv/bin/pip install foo

Avez-vous essayé de poisson en utilisant:

. venv/bin/activate.fish

Il n’est probablement pas aussi largement utilisé que bash, ce qui peut poser des problèmes - un historique récent du correctif:

https://github.com/pypa/virtualenv/commits/develop/virtualenv_embedded/activate.fish

116
user146416

Vous pouvez également utiliser ceci: https://github.com/adambrenecki/virtualfish

Il vous permet d'activer un virtualenv en tapant ceci:

vf activate <my_env>
19
devict

Vous pouvez utiliser virtualfish.

Un emballage de coquille de poisson pour la virtualisation de Ian Bicking, un peu lâchement. basé sur l’enveloppe virtuelle de Doug Hellman pour Bourne compatible coquilles.

Source: https://github.com/adambrenecki/virtualfish

Docs: http://virtualfish.readthedocs.org/en/latest/

3
Arie

Si vous ne pouvez pas utiliser activate.fish, vous pouvez simplement ajouter le répertoire bin à votre PATH:

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

C’est à peu près tout ce que activate.fish fait (enfin, pas tout à fait, il désactive également PYTHONHOME, (qui n’avait pas été défini auparavant lorsque je l’ai essayé quand même, YMMV); et il tente de jouer avec votre fish_Prompt).

Autre possibilité: je suis un ancien utilisateur de Bash qui a commencé à utiliser Fish et manque dans la variable virtualenvwrapper de Doug Hellman. Je viens juste de commencer à travailler sur un remplacement appelé virtualfish - qui comporte quelques raccourcis pratiques qui pourraient vous être utiles, même si loin d'être aussi complet que VEW.

2
Adam Brenecki

Pour virtualenv, fish a un fichier d'activation séparé dans le répertoire bin avec l'extension .fish.

Donc vous devrez faire:

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

0
Sangeet

(Ce fil semble proche d'être fermé, mais j'ai trouvé une solution :)

Pour entrer dans un nouveau poisson avec environnement de pêche:

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

lorsque le répertoire venv est ./venv.

Pour désactiver, il suffit de ctrl-d ou exit.


Une autre solution, qui n'invoque pas un shell enfant.

Créez et entrez dans un environnement particulier:

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

Sortir de l'environnement:

set -lx PATH $PATH[2..-1]
0
Toshihiro Kamiya