SORU
23 EKİM 2009, Cuma


Setup.py olmayan Python dosyaları da dahil olmak üzere

Nasıl setup.py Bu kod parçası olmayan bir dosya vardır? (Özellikle, bir lisans dosyası var, ama başka bir şey de olabilir.)

Dosya konumunu kontrol edebilmek istiyorum. Orijinal kaynak dosya, paket kök. (en üstteki 5*. *ile aynı seviyede yani) Bu paket, işletim sistemi ne olursa olsun yüklü tam olarak ne zaman orada kalmak istiyorum. Nasıl yapabilirim?

CEVAP
7 Aralık 2009, PAZARTESİ


Muhtemelen en iyi yolu bu yapmaktır setuptools package_data yönergesini kullanın. Bu distutils yerine setuptools (distribute) kullanarak anlamına gelmez, ama bu çok sorunsuz"". yükseltme

İşte (ama denenmemiş) tam bir örnek:

from setuptools import setup, find_packages

setup(
    name='your_project_name',
    version='0.1',
    description='A description.',
    packages=find_packages(exclude=['ez_setup', 'tests', 'tests.*']),
    package_data={'': ['license.txt']},
    include_package_data=True,
    install_requires=[],
)

Not burada kritik olan belirli satır:

package_data={'': ['license.txt']}

Bu desenleri (renk teorisi içerebilir) listesi için paket isimleri (boş = tüm paketler) dict. Eğer sadece paket içindeki dosyaları belirtmek istiyorsanız, örneğin, bunu da yapabilirsiniz:

package_data={'yourpackage': ['*.txt', 'path/to/resources/*.txt']}

Çözüm burada kesinlikledeğilbir sigara py dosyaları yeniden adlandırmak için .py uzantısı.

Daha fazla bilgi için Ian Bicking's presentation bkz.

GÜNCELLEME: [daha İyi] Başka bir Yaklaşım

Peki eğer sadece paket (en üst düzey örn: dizin) dış kaynak dağıtım (sdist) ve dosyaların içeriğini kontrol etmek istiyorsanız işe yarayan başka bir yaklaşım bir BİLDİRİM eklemek için.dosya içinde. Bu dosya biçimi için the Python documentation bkz.

Yazma beri bu yanıt, kullanarak BİLDİRİM bulduk.genellikle sadece kaynak dağıtımı (tar.gz) gereken dosyalara sahip olduğundan emin olmak için daha az sinir bozucu bir yaklaşımdır.

Eğer üst düzey, requirements.txt eklemek istedim örneğin, özyinelemeli olarak dahil üst düzey "veri" dizin:

include requirements.txt
recursive-include data *

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • DRDAnimation

    DRDAnimation

    28 EYLÜL 2012
  • GoogleTechTalks

    GoogleTechTa

    15 AĞUSTOS 2007
  • Marissah Simonini

    Marissah Sim

    25 HAZİRAN 2013