Mam skrypt, który chcę być dostępny na całym świecie. Zacząłem go ze standardowym hashbang:Uruchamianie skryptu Pythona z wnętrza bin virtualenv nie działa
#! /usr/bin/env python
i połączone go do katalogu bin mojego virtualenv:
~/environments/project/env/bin/myscript
i dodał, że katalog na mojej ścieżce. Po uruchomieniu polecenia:
myscript
Wystąpił błąd importu w jednej z bibliotek. Jeśli jednak aktywuję środowisko wirtualne i uruchomię skrypt, działa zgodnie z oczekiwaniami.
Wykluczyłem problem z dowiązaniem symbolicznym (próbowałem również przesuwać skrypt w folderze bin). Próbowałem zostały również działania skryptu z python
python ~/environments/project/env/bin/myscript
Wcześniej używałem skryptu, który aktywowany środowiska i pobiegł mój skrypt, ale byłem pod wrażeniem, że skrypt uruchamiany z tego folderu należy uruchomić z virtualenv-tych interpretator i pakiety site-packages. Jakieś pomysły na to, dlaczego to nie działa, lub niektóre sposoby, w jakie mogę to debugować?
Nie ma związku z pańskim pytaniem: mimo że większość pocisków je ignoruje, używając '#!/'jest ściśle mówiąc źle, jako że przestrzeń musiała być uważana za część ścieżki programu. Opuść przestrzeń i jesteś bezpieczny. – kay