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 *.pycdaha sonra daha kolay (ve daha hızlı) içe aktarmak için bayt kodunu içeren bir dosya oluşturur..pyo: Bu, *.pycoptimizasyon ( -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 .pycvs 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 .pyodosyaları eledi . Bu, .pycdosyaları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));
.pyodosyalar. Optimize edilmiş bayt kodu bile .pycPython 3.5 uzantısı ile biter .
sys.path. Bkz. siteModü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.
.pthdosyaları tartışmalıdır .