2015-10-03 18 views
14

Python olmayan dosyaları dahil etmek için çeşitli seçenekleri setup.py'a bağlıyorum ve sezgiselden biraz daha az. İçinde ne olduğunu görmek için bdist_wheel tarafından üretilen paketi kontrol edebilmek istiyorum - çalışacağından emin olmak için çok fazla değil (bu testlerin ne işe yaradığı) ama ben de seçeneklerimin etkilerini görmek için ayarlayın.Dosyaları bir python çarkı içinde nasıl listeleyebilirim?

.whl'da bulunan dosyaları nasıl listeleyebilirim?

+2

Kesinlikle emin olun bu bir zip dosyasıdır (https://pypi.python.org/pypi/wheel). –

+0

"Çalışacağından emin olmak için çok fazla değil": bazı denetim listesi öğeleri test için sıra dışı konulardır, örneğin, tekerlek içinde derlenmiş formda bulunan harici C kitaplıklarına eşlik eden ek lisans dosyalarının olduğundan emin olun. Bu öğeler, direksiyonun içeriğini listeleyerek en iyi şekilde kontrol edilir. Ayrıca bakınız: https://stackoverflow.com/questions/24347450/how-do-you-add-additional-files-to-a-wheel –

cevap

16

Tekerlek dosyasını, uzantıyı .zip olarak değiştirebilir ve ardından içeriği başka bir zip dosyası gibi ayıklayabilirsiniz. PEP 427

bir tekerlek gelen

özel olarak biçimlendirilmiş bir dosya adı ve .whl uzantılı bir ZIP formatlı arşividir.

Django python package

Örnek bir tekerlek dosyası vardır. Örnek olarak Django-1.8.4-py2.py3-none-any.whl'u deneyin. Arşivde nerede saklandıklarını görmek için paketlerinde python olmayan dosyalar bulunur.

Kod

Aşağıdaki kod python2 ve python3 düzgün çalışır. Herhangi bir tekerlek paketindeki dosyaları listeler. Pep8 jant paketini örnek olarak kullanıyorum.

from zipfile import ZipFile 
path = '/tmp/pep8-1.7.0-py2.py3-none-any.whl' 
print(ZipFile(path).namelist()) 

bir tekerlek, bir ZIP dosyası, unzip eser olduğunu

['pep8.py', 'pep8-1.7.0.dist-info/DESCRIPTION.rst', 'pep8-1.7.0.dist-info/entry_points.txt', 'pep8-1.7.0.dist-info/metadata.json', 'pep8-1.7.0.dist-info/namespace_packages.txt', 'pep8-1.7.0.dist-info/top_level.txt', 'pep8-1.7.0.dist-info/WHEEL', 'pep8-1.7.0.dist-info/METADATA', 'pep8-1.7.0.dist-info/RECORD'] 
+0

Eh, şimdi aptal hissediyorum. Bu mükemmel çalışıyor, teşekkürler. – Andrew

+3

@Andrew, yeni bir şey öğreniyorsan asla aptal hissetme! –

1

unzip -l dist/*.whl (credit)

yana Çıktı. Uzantının zip olarak yeniden adlandırılmadığı sürece, dosya adı için sekme tamamlanmaz. from zipfile import ZipFile yaklaşımı, yalnızca sistemde Python'un varlığını varsayar, ancak kabuktaki bir tek astar daha pratiktir.

İlgili konular