Quale file devo modificare e come? Ho creato un ambiente virtuale.
virtualenvwrapper
comando. Non fa parte di virtualenv
.
Quale file devo modificare e come? Ho creato un ambiente virtuale.
virtualenvwrapper
comando. Non fa parte di virtualenv
.
Risposte:
MODIFICA # 2
La risposta giusta è quella di @ arogachev .
Se vuoi cambiare l' PYTHONPATH
usato in un virtualenv, puoi aggiungere la seguente riga al bin/activate
file del tuo virtualenv :
export PYTHONPATH="/the/path/you/want"
In questo modo, il nuovo PYTHONPATH
verrà impostato ogni volta che usi questo virtualenv.
EDIT: (per rispondere al commento di @ RamRachum)
Per riportarlo al suo valore originale deactivate
, potresti aggiungere
export OLD_PYTHONPATH="$PYTHONPATH"
prima della riga menzionata in precedenza e aggiungi la riga seguente al tuo bin/postdeactivate
script.
export PYTHONPATH="$OLD_PYTHONPATH"
deactivate
?
PYTHONPATH
(quello globale) invece del percorso locale virtualenv?
Il commento di @ s29 dovrebbe essere una risposta:
Un modo per aggiungere una directory all'ambiente virtuale è installare virtualenvwrapper (che è utile per molte cose) e poi fare
mkvirtualenv myenv
workon myenv
add2virtualenv . #for current directory
add2virtualenv ~/my/path
Se vuoi rimuovere questi percorsi, modifica il file myenvhomedir/lib/python2.7/site-packages/_virtualenv_path_extensions.pth
La documentazione su virtualenvwrapper può essere trovata su http://virtualenvwrapper.readthedocs.org/en/latest/
La documentazione specifica su questa funzione può essere trovata su http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html?highlight=add2virtualenv
add2virtualenv -d
È possibile creare un .pth
file che contenga la directory da cercare e posizionarlo nella site-packages
directory. Per esempio:
cd $(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")
echo /some/library/path > some-library.pth
L'effetto è lo stesso come l'aggiunta /some/library/path
di sys.path
, e rimanere locale alla virtualenv
configurazione.
$VIRTUALENV_ROOT/lib/pythonX.Y/site-packages
. Documenti sui file .pth: docs.python.org/3.6/library/site.html
pushd "$(venv/bin/python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")" ...path/to/project/venv/lib/python3.7/site-packages ...path/to/project echo ../../../../src > my_project.pth popd
Quindi ho disattivato il mio virtualenv e ho riattivato. Ora potevo eseguire il codice del progetto che richiedeva di sapere dove si trovava la directory del mio progetto.
/bin/activate
) è un malcostume e l'installazione di strumenti di terze parti è inferiore rispetto all'utilizzo del metodo integrato per ottenere lo stesso risultato.
cd venv
source bin/activate
export PYTHONPATH='/home/django/srmvenv/lib/python3.4'
python
\>\> import sys
\>\> sys.path
Ho modificato il mio script di attivazione per generare il file .virtualenvrc
, se esiste nella directory corrente, e per salvare / ripristinare all'attivazione PYTHONPATH
/ disattivazione.
Puoi trovare lo activate
script corretto qui. . È un sostituto immediato per lo script di attivazione creato da virtualenv 1.11.6.
Quindi ho aggiunto qualcosa del genere al mio .virtualenvrc
:
export PYTHONPATH="${PYTHONPATH:+$PYTHONPATH:}/some/library/path"
La risposta è già qui -> Il mio ambiente virtuale (python) sta causando la rottura del mio PYTHONPATH?
Aggiungi "export PYTHONPATH = / usr / local / lib / python2.0" al file ~ / .bashrc e procuralo digitando "source ~ / .bashrc" OR ". ~ / .Bashrc".
1) Vai al pannello di controllo 2) Fare doppio clic su Sistema 3) Vai alla scheda Avanzate 4) Fare clic su Variabili d'ambiente
Nella finestra Variabili di sistema, controlla se hai una variabile chiamata PYTHONPATH. Se ne hai già uno, controlla che punti alle directory giuste. Se non ne hai già uno, fai clic sul pulsante Nuovo e crealo.
In alternativa, puoi anche fare sotto il tuo codice: -
import sys
sys.path.append("/home/me/mypy")