Który plik mam edytować i jak? Stworzyłem wirtualne środowisko.
virtualenvwrapper
polecenie. Nie jest częścią virtualenv
.
Który plik mam edytować i jak? Stworzyłem wirtualne środowisko.
virtualenvwrapper
polecenie. Nie jest częścią virtualenv
.
Odpowiedzi:
EDYCJA # 2
Prawidłowa odpowiedź brzmi: @ arogachev .
Jeśli chcesz zmienić PYTHONPATH
używane w virtualenv, możesz dodać następujący wiersz do bin/activate
pliku virtualenv :
export PYTHONPATH="/the/path/you/want"
W ten sposób nowy PYTHONPATH
zostanie ustawiony za każdym razem, gdy użyjesz tego virtualenv.
EDYCJA: (aby odpowiedzieć na komentarz @ RamRachum)
Aby przywrócić pierwotną wartość w dniu deactivate
, możesz dodać
export OLD_PYTHONPATH="$PYTHONPATH"
przed wspomnianą wcześniej linią i dodaj następujący wiersz do swojego bin/postdeactivate
skryptu.
export PYTHONPATH="$OLD_PYTHONPATH"
deactivate
?
PYTHONPATH
(globalną) zamiast ścieżki lokalnej virtualenv?
Odpowiedź @ s29 powinna być odpowiedzią:
Jednym ze sposobów dodania katalogu do środowiska wirtualnego jest zainstalowanie virtualenvwrapper (co jest przydatne do wielu rzeczy), a następnie wykonanie
mkvirtualenv myenv
workon myenv
add2virtualenv . #for current directory
add2virtualenv ~/my/path
Jeśli chcesz usunąć te ścieżki, edytuj plik myenvhomedir/lib/python2.7/site-packages/_virtualenv_path_extensions.pth
Dokumentację na temat virtualenvwrapper można znaleźć pod adresem http://virtualenvwrapper.readthedocs.org/en/latest/
Szczegółową dokumentację dotyczącą tej funkcji można znaleźć pod adresem http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html?highlight=add2virtualenv
add2virtualenv -d
Możesz utworzyć .pth
plik zawierający katalog do wyszukania i umieścić go w site-packages
katalogu. Na przykład:
cd $(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")
echo /some/library/path > some-library.pth
Efekt jest taki sam, jak dodanie /some/library/path
do konfiguracji sys.path
i pozostaje lokalny w stosunku do virtualenv
konfiguracji.
$VIRTUALENV_ROOT/lib/pythonX.Y/site-packages
. Dokumenty w plikach .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
Następnie dezaktywowałem virtualenv i reaktywowałem. Mogłem teraz uruchomić kod projektu, który wymagał znajomości katalogu mojego projektu.
/bin/activate
) jest błędem w sztuce, a instalowanie narzędzi innych firm jest gorsze od korzystania z wbudowanych sposobów, aby osiągnąć to samo.
cd venv
source bin/activate
export PYTHONPATH='/home/django/srmvenv/lib/python3.4'
python
\>\> import sys
\>\> sys.path
Zmodyfikowałem mój skrypt aktywacji, aby pozyskiwał plik .virtualenvrc
, jeśli istnieje w bieżącym katalogu, i aby zapisywał / przywracał PYTHONPATH
przy aktywacji / dezaktywacji.
Możesz znaleźć poprawiony activate
skrypt tutaj.. Jest to bezpośredni zamiennik skryptu aktywacyjnego utworzonego przez virtualenv 1.11.6.
Następnie dodałem coś takiego do mojego .virtualenvrc
:
export PYTHONPATH="${PYTHONPATH:+$PYTHONPATH:}/some/library/path"
Tutaj już odpowiedź -> Czy moje środowisko wirtualne (Python) powoduje uszkodzenie PYTHONPATH?
Dodaj „export PYTHONPATH = / usr / local / lib / python2.0” do pliku ~ / .bashrc i zródłaj go wpisując „source ~ / .bashrc” OR ”. ~ / .Bashrc”.
1) Przejdź do Panelu sterowania 2) Kliknij dwukrotnie System 3) Przejdź do zakładki Zaawansowane 4) Kliknij Zmienne środowiskowe
W oknie Zmienne systemowe sprawdź, czy masz zmienną o nazwie PYTHONPATH. Jeśli już go masz, sprawdź, czy wskazuje na właściwe katalogi. Jeśli jeszcze go nie masz, kliknij przycisk Nowy i utwórz go.
Alternatywnie możesz również zrobić poniżej swojego kodu: -
import sys
sys.path.append("/home/me/mypy")