Saya punya pertanyaan tentang file telur dengan Python.
Saya memiliki banyak kode Python yang diatur oleh paket dan saya mencoba membuat file telur. Saya mengikuti instruksi , tetapi itu sangat umum.
Berdasarkan hal itu, sepertinya saya perlu memiliki file setup.py.
- Bisakah Anda memberi tahu saya apa yang perlu saya masukkan ke dalam file setup.py dan di mana tempatnya?
- Saya kira itu cukup untuk membuat setup.py dan kemudian memulai "setup.py bdist_egg" untuk mendapatkan file telur. Bisakah Anda mengkonfirmasi?
- Apakah mungkin hanya menyertakan file .pyc ke dalam file telur?
- Memiliki file .egg bagaimana saya bisa memulai kode darinya tanpa membongkar seperti
java -jar <jar file>
apakah?
Jawaban:
Anda membaca dokumentasi yang salah. Anda menginginkan ini: https://setuptools.readthedocs.io/en/latest/setuptools.html#develop-deploy-the-project-source-in-development-mode
Membuat setup.py tercakup dalam dokumentasi distutils dalam dokumentasi pustaka standar Python di sini . Perbedaan utama (untuk telur python) adalah Anda
import setup
darisetuptools
, bukandistutils
.Ya. Itu seharusnya benar.
Saya rasa tidak.
pyc
file dapat bergantung pada versi dan platform. Anda mungkin dapat membuka telur (seharusnya hanya berupa file zip) dan menghapus.py
file yang meninggalkan.pyc
file, tetapi itu tidak disarankan.Saya tidak yakin. Itu mungkin "Mode Pengembangan". Atau apakah Anda mencari beberapa mode "py2exe" atau "py2app"?
sumber
Untuk # 4, hal terdekat untuk memulai java dengan file jar untuk aplikasi Anda adalah fitur baru di Python 2.6, file zip dan direktori yang dapat dieksekusi .
Dimana myapp.zip adalah zip yang berisi
__main__.py
file yang dieksekusi sebagai file script yang akan dieksekusi. Dependensi paket Anda juga dapat disertakan dalam file:Anda juga bisa mengeksekusi telur, tetapi mantranya tidak sebaik:
# Bourn Shell and derivatives (Linux/OSX/Unix) PYTHONPATH=myapp.egg python -m myapp
Ini menempatkan myapp.egg di jalur Python dan menggunakan argumen -m untuk menjalankan modul. Myapp.egg Anda mungkin akan terlihat seperti ini:
Dan python akan berjalan
__init__.py
(Anda harus memeriksanya__file__=='__main__'
di aplikasi Anda untuk penggunaan baris perintah).File telur hanyalah file zip sehingga Anda mungkin dapat menambahkan
__main__.py
ke telur Anda dengan alat zip dan membuatnya dapat dieksekusi di python 2.6 dan menjalankannya sepertipython myapp.egg
bukan mantra di atas di mana variabel lingkungan PYTHONPATH diatur.Informasi lebih lanjut tentang file zip yang dapat dieksekusi termasuk cara membuatnya dapat dieksekusi secara langsung dengan shebang dapat ditemukan di posting blog Michael Foord tentang masalah ini .
sumber
Saya pikir Anda harus menggunakan roda python untuk distribusi, bukan telur sekarang.
sumber