Zacząłem uczyć się języka Python i jestem również nowym użytkownikiem Ubuntu. Muszę znać sposoby kompilacji .pyplików. Próbowałem z poleceniem
python "hello.py"
Jakie są inne sposoby kompilowania Pythona?
Zacząłem uczyć się języka Python i jestem również nowym użytkownikiem Ubuntu. Muszę znać sposoby kompilacji .pyplików. Próbowałem z poleceniem
python "hello.py"
Jakie są inne sposoby kompilowania Pythona?
Odpowiedzi:
Pamiętaj również, że nie musisz kompilować .pypliku, aby go uruchomić. Python jest językiem interpretowanym i możesz uruchamiać skrypty bezpośrednio, używając:
python hello.py
Lub #!/usr/bin/env pythonspraw, aby skrypt był wykonywalny, dodając go na górze skryptu, czyniąc plik wykonywalnym za pomocą, chmod +x hello.pya następnie uruchamiając:
./hello.py
Fakt, że Python kompiluje wewnętrznie .pyskrypt do .pycplików kodu bajtowego ze względu na wydajność, jest szczegółem implementacji i jeśli nie masz ku temu silnego powodu, pozwól samemu pytonowi zdecydować, kiedy i czy skompilować.
chmod +x), w jaki sposób interpreter odczytuje skrypt?
#!/path/to/interpreter, jądro faktycznie wykonuje to, co tam zadeklarowano, przekazując ścieżkę skryptu jako argument. W moim przykładzie po uruchomieniu ./hello.pywykonuje się to, co jest faktycznie wykonywane /usr/bin/env python ./hello.py. Zobacz en.wikipedia.org/wiki/Shebang_(Unix)
chmod +xprzyznaje wykonanie i nie dotyka istniejących uprawnień, więc prawdopodobnie jest czytelny oprócz tego, że jest teraz wykonywalny.
Sprawdź ten link Kompiluj w Pythonie
Na środku strony mówi o module py_compile, który można zaimportować. Składnia jest następująca:
import py_compile
py_compile.compile("file.py")
Ta metoda kompilacji nie uruchomi modułu tak samo jak uruchomienie pliku pyt.py.py.
Istnieje również metoda, która kompiluje całe drzewo katalogów, ale pozwolę ci sprawdzić link, aby zobaczyć, jak to się wykonuje.
Mam nadzieję że to pomoże.
Możesz także spróbować compileall:
python -m compileall ./
Możesz skompilować skrypty Pythona do kodu binarnego przy użyciu różnych metod, ale odkryłem, że używanie Nuitka jest bardziej wydajne.
Nuitka to kompilator Pythona na C ++, który obsługuje prawie wszystkie wersje Pythona.
Składnia polecenia jest tak prosta, jak
nuitka hello.py
Idź do http://nuitka.net/doc/user-manual.html, aby uzyskać więcej informacji.
-Oflagę, jakpython -O -m py_compile …, która „włączy podstawowe optymalizacje”. Usuwa głównieassertinstrukcje iif __debug__kod, więc dla większości kodów nie ma to żadnego wpływu. Zobaczman pythoni „Czym zajmuje się optymalizacja Python…”, aby uzyskać szczegółowe informacje.