Bir python dosyası nasıl derlenir?


57

Python öğrenmeye başladım ve aynı zamanda Ubuntu'ya yeni bir kullanıcıyım. .pyDosyaları derlemenin yollarını bilmem gerekiyor . Komutla denedim

python "hello.py"

Python'u derlemenin diğer yolları nelerdir?

Yanıtlar:


58

Bryan'ın cevabını ekleyerek, eğer bir dosyayı bir terminalden bir dosya ya da bir demet dosyayı derlemek istiyorsanız, py_compilemodül aşağıdaki şekilde bir komut dosyası olarak çalıştırılabilir:

python -m py_compile fileA.py fileB.py fileC.py ...


9
Derlemek istediğiniz için hız istiyorsanız, “temel optimizasyonları açacak” -Ogibi bir bayrak da ekleyebilirsiniz python -O -m py_compile …. Genelde assertifadeleri ve if __debug__kodu çıkarır , bu nedenle çoğu kod için etkisi yoktur. Bkz man pythonve “do ... Python optimizasyonu özü nedir?” Detaylar için.
Rory O'Kane

26

Ayrıca çalıştırmak için bir dosyayı derlemeniz gerekmediğini unutmayın.py . Python, yorumlanmış bir dildir ve aşağıdakileri kullanarak doğrudan komut dosyalarını çalıştırabilirsiniz:

python hello.py

Veya ekleyerek komut çalıştırılabilir hale #!/usr/bin/env python, senaryonun üstüne ile dosyayı çalıştırılabilir hale chmod +x hello.pyve sonra çalışan:

./hello.py

Python'un .pybetiğinizi dahili .pycolarak performans nedenleriyle bytecode dosyaları için derlemesi bir uygulama detayıdır ve bunu yapmak için güçlü bir nedeniniz yoksa python'un ne zaman ve derleneceğine karar vermesine izin verin.


Bunun neden işe yaradığı konusunda kafam karıştı. Python yorumlayıcısının çalışması için senaryoyu okuyabilmesi gerekmez mi? Yalnızca yürütme izni verirseniz ( chmod +x), tercüman komut dosyasını nasıl okuyor?
sarı01

@ yellow01: "shebang" içeren bir komut dosyası çalıştırdığınızda, yani ilk satırdan önce #!/path/to/interpreter, çekirdek aslında orada bildirilenleri çalıştırır, komut dosyası yolunu argüman olarak geçirir. Benim örneğimde, çalıştırdığınızda ./hello.pygerçekte yürütülen şeydir /usr/bin/env python ./hello.py. Bakınız en.wikipedia.org/wiki/Shebang_(Unix)
MestreLion

@ yellow01, MestreLion'un açıkladığı süreçte tercümanın okuma izinlerine ihtiyaç duyacağı konusunda haklısınız. Ancak, chmod +xhibeler yürütülür ve mevcut izinlere dokunmaz, bu nedenle muhtemelen çalıştırılabilir olmanın yanı sıra okunabilir.
spektrumlar

11

Bu bağlantıya göz atın Python'da derleyin

Sayfanın ortasında, içe aktarılabilecek py_compile modülünden bahsediyor. Sözdizimi aşağıdaki gibidir:

import py_compile

py_compile.compile("file.py")

Bu derleme yöntemi, modülü python file.py çalıştırması gibi kullanmayacaktır.

Ayrıca tüm bir dizin ağacını derleyen bir yöntem var, ancak nasıl yapıldığını görmek için bağlantıyı kontrol etmenize izin vereceğim.

Bu yardımcı olur umarım.



4

Python scriptlerini çeşitli metotlar kullanarak bir ikili koda derleyebilirsiniz, ancak Nuitka kullanımının daha verimli olduğunu öğrendim.

Nuitka, Python'un neredeyse tüm sürümlerini destekleyen bir Python'dan C ++ derleyicisidir.

Komut sözdizimi kadar kolaydır

nuitka hello.py

Goto http://nuitka.net/doc/user-manual.html Daha fazla bilgi için.


6
Daha verimli nasıl? Neden biri onu kullanmak istesin ki?
muru

nuitka gerçekten çok kullanışlıdır - örneğin, Python programlarını Python'un kurulu olmadığı bilgisayarlara göndermenizi sağlar. Ancak nuitka, Python programlarını C ++ makine koduyla derlerken, bunu aşabilirsiniz.
kullanıcı258532
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.