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

  • Bryan Smith

    Bryan Smith

    12 Mart 2006
  • eHow

    eHow

    27 NİSAN 2006
  • ETrade Supply

    ETrade Suppl

    23 Temmuz 2011