Zacząłem uczyć się języka Python i jestem również nowym użytkownikiem Ubuntu. Muszę znać sposoby kompilacji .py
plikó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 .py
plików. Próbowałem z poleceniem
python "hello.py"
Jakie są inne sposoby kompilowania Pythona?
Odpowiedzi:
Pamiętaj również, że nie musisz kompilować .py
pliku, 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 python
spraw, aby skrypt był wykonywalny, dodając go na górze skryptu, czyniąc plik wykonywalnym za pomocą, chmod +x hello.py
a następnie uruchamiając:
./hello.py
Fakt, że Python kompiluje wewnętrznie .py
skrypt do .pyc
plikó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.py
wykonuje się to, co jest faktycznie wykonywane /usr/bin/env python ./hello.py
. Zobacz en.wikipedia.org/wiki/Shebang_(Unix)
chmod +x
przyznaje 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.
-O
flagę, jakpython -O -m py_compile …
, która „włączy podstawowe optymalizacje”. Usuwa głównieassert
instrukcje iif __debug__
kod, więc dla większości kodów nie ma to żadnego wpływu. Zobaczman python
i „Czym zajmuje się optymalizacja Python…”, aby uzyskać szczegółowe informacje.