Bu python dosya uzantıları ne anlama geliyor?
- .pyc
- .pyd
- .pyo
Aralarındaki farklar nelerdir ve * .py dosyasından nasıl oluşturulur?
Bu python dosya uzantıları ne anlama geliyor?
Aralarındaki farklar nelerdir ve * .py dosyasından nasıl oluşturulur?
Yanıtlar:
.py
: Bu normalde yazdığınız giriş kaynak kodudur..pyc
: Bu derlenmiş bayt kodudur. Bir modülü içe aktarırsanız, python *.pyc
daha sonra daha kolay (ve daha hızlı) içe aktarmak için bayt kodunu içeren bir dosya oluşturur..pyo
: Bu, *.pyc
optimizasyon ( -O
) bayrağıyla oluşturulan dosyalar için Python 3.5'ten önce kullanılan bir dosya biçimiydi. (aşağıdaki nota bakın).pyd
: Bu temelde bir windows dll dosyasıdır. http://docs.python.org/faq/windows.html#is-a-pyd-file-the-same-as-a-dllAyrıca .pyc
vs hakkında daha fazla tartışma için .pyo
, http://www.network-theory.co.uk/docs/pytut/CompiledPythonfiles.html (Aşağıdaki önemli kısmı kopyaladım)
- Python yorumlayıcısı -O bayrağıyla çağrıldığında, optimize edilmiş kod oluşturulur ve '.pyo' dosyalarında saklanır. Optimize edici şu anda pek yardımcı olmuyor; yalnızca onay ifadelerini kaldırır. -O kullanıldığında, tüm bayt kodu optimize edilir; .pyc dosyaları yok sayılır ve .py dosyaları optimize edilmiş bayt koduna göre derlenir.
- Python yorumlayıcısına (-OO) iki -O bayrağını iletmek, bayt kodu derleyicisinin bazı nadir durumlarda hatalı programlarla sonuçlanabilecek optimizasyonlar yapmasına neden olur. Şu anda
__doc__
bayt kodundan yalnızca dizeler kaldırılarak daha kompakt '.pyo' dosyaları elde edilmektedir. Bazı programlar bunların mevcut olmasına güvenebileceğinden, bu seçeneği yalnızca ne yaptığınızı biliyorsanız kullanmalısınız.- Bir program '.pyc' veya '.pyo' dosyasından okunduğunda '.py' dosyasından okunduğundan daha hızlı çalışmaz; '.pyc' veya '.pyo' dosyaları hakkında daha hızlı olan tek şey, yüklenme hızıdır.
- Bir komut dosyası, komut satırında adı verilerek çalıştırıldığında, komut dosyasının bayt kodu hiçbir zaman bir '.pyc' veya '.pyo' dosyasına yazılmaz. Böylece, bir komut dosyasının başlama zamanı, kodunun çoğunu bir modüle taşıyarak ve o modülü içe aktaran küçük bir önyükleme komut dosyasına sahip olarak azaltılabilir. Bir '.pyc' veya '.pyo' dosyasını doğrudan komut satırında adlandırmak da mümkündür.
Not:
2015-09-15'te Python 3.5 sürümü PEP-488'i uyguladı ve .pyo
dosyaları eledi . Bu, .pyc
dosyaların hem optimize edilmemiş hem de optimize edilmiş bayt kodunu temsil ettiği anlamına gelir .
def f(x): assert(x**5 == x*x*x*x*x); return x; import timeit; print(timeit.repeat("for x in range(100): f(x)", "from __main__ import f", number=10000));
.pyo
dosyalar. Optimize edilmiş bayt kodu bile .pyc
Python 3.5 uzantısı ile biter .
sys.path
. Bkz. site
Modül.Ek Python dosya uzantılarının daha büyük bir listesini (çoğunlukla nadir ve gayri resmi) http://dcjtech.info/topic/python-file-extensions/ adresinde bulabilirsiniz.
.pth
dosyaları tartışmalıdır .