Panduan "Distribusikan Python" (ada di python-distribute.org, tetapi pendaftaran itu telah kedaluwarsa) memberi tahu saya untuk menyertakan doc/txt
file dan .py
file dikecualikan dalam MANIFEST.in
file
The dokumentasi sourcedist memberitahu saya hanya menggunakan sdist MANIFEST.in
dan hanya mencakup file yang menentukan dan untuk menyertakan .py
file. Itu juga memberitahu saya untuk menggunakan: python setup.py sdist --manifest-only
untuk menghasilkan MANIFEST
, tetapi python memberitahu saya ini tidak ada
Saya menghargai ini berasal dari berbagai versi python dan sistem distribusinya berantakan total, tetapi dengan asumsi saya menggunakan python 3 dan setuptools
(yang baru yang mencakup distribusikan tetapi sekarang disebut setuptools, bukan setuptools lama yang tidak digunakan lagi untuk alat distribusi saja untuk dibawa kembali ke distribusikan dan distribusikan diganti namanya menjadi setuptools .....)
dan saya mengikuti struktur folder dan setup.py
file 'standar' ,
- Apakah saya membutuhkan
MANIFEST.in
? - Apa yang harus ada di dalamnya?
- Kapan semua sistem dan metode paket yang berbeda ini akan dibuat menjadi satu proses sederhana?
sumber
sdist
(means: source distribution ). Jika Anda menganggap bahwabdist
danbdist_wheel
adalah biner dan hanya dimaksudkan untuk dipasang di jalan python Anda, ini masuk akal. (Kemana perginya file dan direktori non-modul ini? Masuk/usr/local/lib/python2.7/dist-packages/
? Tentunya tidak.) Namun perlu disebutkan karena membingungkan melihat arsip dibuat dan tidak menyertakan file.package_data
dandata_files
rekomendasi, yang berada di luar ruang lingkup, saya akan melanjutkan.package_data
daftar file yang terinstal dengan paket Andadist-packages/yourpackage
yang akan dilewati karena tidak memiliki nama * .py.data_files
daftar file yang diinstal di luar paket Anda. Setiap entri menentukan jalur target yang diawali dengansys.prefix
jika itu relatif atau dibuat secara langsung (izin mengizinkan) jika dimulai dengan a/
.pbr
juga ide yang buruk.Pertanyaan lama, jawaban baru:
Tidak, Anda tidak perlu
MANIFEST.in
. Namun, untuksetuptools
melakukan apa yang Anda (biasanya) maksudkan, Anda perlu menggunakansetuptools_scm
, yang berperanMANIFEST.in
di 2 tempat utama:sdist
perintah (di mana semua file yang relevan didefinisikan sebagai "semua file di bawah kendali sumber")include_package_data
untuk menyertakan data paket sebagai bagian daribuild
ataubdist_wheel
. (sekali lagi: file di bawah kendali sumber)Pengertian historis dari
MANIFEST.in
adalah: ketika Anda tidak memiliki sistem kendali sumber, Anda memerlukan mekanisme lain untuk membedakan antara "file sumber" dan "file yang kebetulan ada di direktori kerja Anda". Namun, proyek Anda berada di bawah kendali sumber (kan ??) jadi tidak perluMANIFEST.in
. Info selengkapnya ada di artikel ini .sumber