Aktywuj virtualenv za pomocą skryptu Python
Chcę aktywować instancję virtualenv ze skryptu w języku Python.
Wiem, że jest to dość łatwe do zrobienia, ale wszystkie przykłady, które widziałem, używają go do uruchamiania poleceń w env, a następnie zamykania podprocesu.
Chcę tylko aktywować virtualenv i wrócić do powłoki, tak jak robi to bin/Activ.
Coś w tym stylu:
$me: my-script.py -d env-name
$(env-name)me:
Czy to możliwe?
Odpowiedni:
virtualenv ”wywołaj env ze skryptu
http://groups.google.com/group ... abeae
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
8 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Jeśli jednak chcesz aktywować virtualenv w bieżącym interpreterze Pythona zamiast w podprocesie, możesz użyć skryptu :
Anonimowy użytkownik
Potwierdzenie od:
Spraw, aby skrypt był wykonywalny:
Uruchom skrypt:
Voila!
Anonimowy użytkownik
Potwierdzenie od:
Najpierw musiałem stworzyć skrypt powłoki, aby opakować polecenie „source”. Jednak użyłem „.” zamiast tego, ponieważ przeczytałem, że lepiej jest go używać niż kodu źródłowego skryptów Bash.
Następnie z mojego skryptu Python mogę po prostu zrobić to:
Sztuczka tkwi w argumencie .
Kiedy interpreter Pythona kończy pracę, pozostawia bieżącą powłokę w aktywowanym środowisku.
Zwycięstwo!
Anonimowy użytkownik
Potwierdzenie od:
dokumentacja
https://virtualenv.pypa.io/en/ ... cript
Virtualenv, pełną ścieżkę do pliku wykonywalnego binarnego Pythona można określić w wierszu poleceń, tylko w ten sposób (nie ma potrzeby wcześniejszej aktywacji virtualenv):
To samo dotyczy sytuacji, gdy chcesz wywołać skrypt z wiersza poleceń za pomocą virtualenv. Nie musisz go wcześniej aktywować:
To samo dla środowiska Windows (czy to z wiersza poleceń, czy ze skryptu):
Anonimowy użytkownik
Potwierdzenie od:
Który w zasadzie robi to, co chcesz:
Wtedy zamiast dezaktywować środowisko wirtualne, po prostu
<kbd>
Ctrl
</kbd>
+
<kbd>
D
</kbd>
lub wyjdź. Czy to możliwe rozwiązanie, czy nie to, czego chciałeś?
Anonimowy użytkownik
Potwierdzenie od:
Prawdopodobnie będziesz musiał utworzyć skrypt powłoki (możesz go wygenerować dynamicznie w/tmp), który wyprowadzi zmienne środowiskowe virtualenv do pliku, który zostanie następnie odczytany w procesie nadrzędnym w Pythonie i umieszczony w os.environ.
Lub po prostu przeanalizuj używany skrypt aktywacyjny dla linii w open („bin/Activ”), ręcznie pobierz zawartość i wstaw os.environ. Jest to trudne, ale nie niemożliwe.
Anonimowy użytkownik
Potwierdzenie od:
W przypadku Pythona 3.x użyj tego:
Połączyć:
jaka jest alternatywa dla pliku wykonywalnego w Pythonie 3?
https://coderoad.ru/436198/
Anonimowy użytkownik
Potwierdzenie od:
Załóżmy, że nazwa twojego folderu to virtualenv-virt, chyba że ją zmienisz
Skopiuj poniższe wiersze ...
Utwórz plik skryptu powłoki i wklej powyższe wiersze ...
Daj plikowi wykonywalnemu uprawnienia dostępu do pliku:
Teraz wyeksportuj tę niestandardową ścieżkę folderu, aby można ją było znaleźć w wierszu poleceń, naciskając klawisz tab ...
export PATH = $ PATH: "$ HOME/niestandardowe"
Teraz możesz go używać z dowolnego miejsca, wpisując po prostu następujące polecenie ...
Załóżmy, że to abc ...