2012-06-08 15 views
46

Sto cercando di far funzionare virtualenv con il guscio di pesce. Ho virtualenv installato e funziona bene con bash e zsh. Tuttavia, eseguendo i seguenti comando restituisce fish: Unknown command 'source':Come far funzionare virtualenv con guscio di pesce

$ source ~/path/to/bin/activate 

Qualcuno sa come ottenere virtualenv e la shell di pesce di lavorare insieme. Grazie in anticipo.

+2

ho iniziato ad usare https://github.com/adambrenecki/virtualfish funziona molto bene per i miei progetti –

risposta

81

Non è necessario attivare per utilizzare virtualenv è una comodità. Si può solo usare il virtualenv direttamente:

virtualenv venv 
./venv/bin/pip install foo 

Hai provato dal pesce utilizzando:

. venv/bin/activate.fish 

Probabilmente non è così ampiamente usato come bash si potrebbero avere problemi - guardando il commettere la storia dimostra un recente correzione:

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

+0

Grazie. Ho provato 'active.fish', ma ho bisogno di aggiornare virtualenv alla versione più recente per farlo funzionare. – drbunsen

+0

Se vi imbattete in bug specifici, per favore file su http://github.com/pypa/virtualenv Issue tracker –

+1

Funziona perfettamente per me – Lee

2

Se non è possibile utilizzare activate.fish, si può semplicemente aggiungere la directory bin al PATH:

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

che è praticamente tutto activate.fish fa (beh, non proprio, ma disinserisce anche PYTHONHOME, (che non è stato impostato in anticipo quando l'ho provato in ogni modo, YMMV); e prova a fare casino con il tuo fish_prompt).

alternativa: Sono un ex utente Bash che ha iniziato ad usare pesce e manca di virtualenvwrapper Doug Hellman, quindi ho solo oggi iniziato a lavorare su a replacement called virtualfish - ha alcune scorciatoie a portata di mano si potrebbe trovare utile, anche se è in nessun posto vicino completo come VEW.

0

(Questo thread sembra vicina a essere chiusi, ma ho trovato una soluzione :)

Per inserire una nuova shell pesce con venv ubicazione:

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

quando la directory venv è ./venv.

Per disattivare, solo ctrl-d o exit.


Un'altra soluzione, che non richiama una shell figlio.

Marca e inserire un envrionment venv:

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

Esci dal envrionment:

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