Wygląda na to, że anulowali w Pythonie 3 najłatwiejszy sposób szybkiego załadowania skryptu poprzez usunięcie execfile()
Czy brakuje mi oczywistej alternatywy?
%run script_name
działa ze wszystkimi wersjami Pythona.
imp
jest importlib
(co należy zaimportować): importlib.reload(mod_name)
importuje i wykonuje mod_name
.
runfile()
ponieważ musiałem uruchomić skrypt w języku Python, który działa we własnej przestrzeni nazw (w przeciwieństwie do wywoływania przestrzeni nazw wywołujących ). Moja aplikacja: dodaj katalog wywoływanego skryptu do ścieżki systemowej ( sys.path
) za pomocą __file__
atrybutu: jeśli używamy execfile()
lub jego odpowiednika w Pythonie 3 ( exec(open('file.py').read())
), dołączony skrypt jest uruchamiany w przestrzeni nazw wywołujących, a tym samym __file__
rozwiązuje się do nazwy pliku wywołującego .
reload
powraca, ponieważimp.reload
od 3.2.