Załóżmy, że masz ciąg zawierający ścieżkę do skryptu w języku Python i chcesz załadować i wykonać ten skrypt w przejrzysty sposób (aby nie było fundamentalnych różnic dla skryptu wewnętrznego w porównaniu do uruchamiania bezpośrednio przez "ścieżkę pythona"). A następnie uzyskać wynikowy globalny dykt. Pomyślałem, że runpy.run_path() robi to, ale są dwa problemy. Jeśli ścieżka zawiera jakiś znak Unicode, to nie działa (zobacz http://bugs.python.org/issue17588). A co najważniejsze, biorąc pod uwagę globalny dyktat jest tylko kopią oryginalnego, ponieważ ten oryginalny jest czyszczony, gdy tymczasowy obiekt modułu jest zbierany śmieci. Tak więc obiekt funkcji spowodował uszkodzenie __globals__ dict (patrz http://bugs.python.org/issue18331).Jak uruchomić skrypt Python z innego skryptu i uzyskać wynikowy globalny dict?
Czy masz pomysły na uruchomienie wewnętrznego skryptu?
Aktualizacja: Zobacz moje bieżące podejście - http://bpaste.net/show/RzAbQxLNXiJsXYm2fplz/. Jakieś sugestie? Ulepszenia? Na przykład o szczegółach, które mogą być różne od punktu widzenia uruchamianego skryptu. Wiem o problemie z realoadingiem __main__.
przepisać „wewnętrzny” scenariusz się do użytku jako moduł ... – l4mpi
[execfile()] (http://docs.python.org /2/library/functions.html?highlight=execfile#execfile). – martineau
@ l4mpi: Ścieżka i skrypt wewnętrzny nie są naprawione. – user87690