Czy istnieje sposób modyfikowania Pythona/PIP do, gdy import nie powiedzie się w runtime, to spróbuje zainstalować moduł (o tej samej nazwie) z pip a następnie zaimportować moduł?Modyfikuj Pythona/PIP, aby automatycznie instalować moduły, gdy nie udało się zaimportować
Powiedziałbym, że byłoby to ładniejsze domyślne niż po prostu wrzucić błąd. Jeśli po załadowaniu modułu z pip wystąpią jakiekolwiek problemy, to również wystąpiłby błąd, podobny do tego, gdy zauważyłem, że nie mogę zaimportować czegoś, spróbuj pip install
, a następnie przejdź do dokładnie ten sam komunikat o błędzie.
Wiem, że możemy użyć requirements.txt
do pakowania pakietu, ale mówię od "klienta" (osoby uruchamiającej skrypt), a nie "dostawcy" (osoba dostarczająca skrypt) z perspektywy; to znaczy, ja, jako klient, chciałbym móc importować dowolny skrypt i mieć zależności automatycznie rozwiązywane.
Rozumiem, że może to potencjalnie powodować problemy, ale gdy widzę wyjątku ImportError, powinienem spróbować mimo wszystko wykonać moduł pip install
. Tylko jeśli moduł nie działałby po instalacji pipowej, "czy mógłbym zadać dalsze pytania".
Myślałem o coś takiego fragmentu, który byłby „zbudowany” do procesu Pythona:
def getDirectoryOfInterpreter(p):
return "someway to return the directory"
try:
import somemodule
except ImportError:
os.system(getDirectoryOfInterpreter('THIS_INTERPRETER_BINARY') + ' pip install ' + "MODULE_NAME")
import somemodule
Tak. Tak dzieje się w Python Packages, kiedy są instalowane, sprawdzają zależności i instalują pozostałe pakiety. –
Mówię o rozwiązywaniu zależności w czasie wykonywania skryptu. – PascalVKooten
Mogę mieć sposób, aby ci pomóc, ale zależność powinna być zainstalowana przed –