Petty Petty Joy # 3: Puisi


Manajemen ketergantungan? Shaw, lagi?


Ekosistem Python telah melahirkan banyak cara untuk mengelola dependensi dalam proyek.
Saat ini Anda dapat memilih antara setup.py, requirement.txt, setup.cfg, MANIFEST.in dan Pipfile.
Tetapi pythonist Perancis Sébastien Eustace tidak mengerjakan semua metode ini, dan ia menulis sendiri untuk pengelolaan paket hewan peliharaan - Puisi . Kenapa dia melakukan ini? Untuk mengganti semua setup.py ini, requirement.txt, setup.cfg, MANIFEST.in dan Pipfile dengan sesuatu yang sederhana dan mudah. Ditambah menambahkan sesuatu yang bermanfaat di atas.


gambar


Puisi memungkinkan Anda mengarahkan banyak hal sekaligus - versi bahasa dalam proyek Anda, dependensi, jalur pluggable, skrip uji / pengembangan, build dan penerbitan build. Semua jalur, dependensi dan skrip yang diperlukan dijelaskan dalam file pyproject.toml khusus.


Puisi bekerja paling baik ketika dipasangkan dengan pyenv , sistem untuk mengelola beberapa versi Python dan lingkungan virtual.


Rasakan


Gulung lengan baju kami dan lihat bagaimana puisi bekerja dalam bisnis. Hal pertama yang harus dilakukan adalah meletakkan pyenv , mengikuti instruksi resmi di dermaga.


#  pyenv,        $ pyenv update #     Python     $ pyenv install -l #    ,       $ pyenv install 3.7.3 #      zlib,    # CFLAGS="-I$(xcrun --show-sdk-path)/usr/include" pyenv install 3.7.3 #          $ pyenv local 3.7.3 #  poetry $ pip3 install poetry #    $ poetry init # Poetry         pyproject.toml,       #     .       ,      . $ poetry add flask celery # Poetry       pyproject.toml #     ,     PIP (,       ),     $ poetry add my-package --path ../my-package/ #       $ poetry show #        Python $ poetry run python #      Python   ,     flask  celery,    . 

Lingkungan diinstal dan dikonfigurasi, dependensi dikendalikan dengan satu jari, Anda dapat memotong kode!


Kemungkinan besar Anda akan memiliki perintah proyek untuk meluncurkan server, pekerja, skrip penerapan, dan pengujian. Anda dapat menempatkan mereka di pyproject.toml dan juga mengarahkan mereka dengan satu jari.


Tambahkan ke file


 my-script = "my_module:main" 

dan sekarang Anda dapat menjalankan skrip dengan perintah


 poetry run my-script 

Kenapa ini semua?


Menghabiskan selusin menit untuk menguasai hal ini, Anda akan menghemat waktu dan saraf dalam mengelola versi bahasa dan paket, melacak dependensi dan mengatur jalur. Ini terutama akan membantu mereka yang setidaknya sekali mencoba mempublikasikan perkembangan mereka di pip :)


  • Penyelesai dependensi yang mampu selalu menemukan solusi untuk paket konflik versi (jika ada sama sekali)
  • Secara otomatis membuat kotak pasir untuk menjalankan proyek.
  • Utilitas konsol yang bagus yang sangat menyederhanakan peluncuran, pengujian, dan proyek penerapan.

Puisi bersahabat dengan pengontrol lingkungan virtual lainnya, jadi mengintegrasikan pendekatan baru ke dalam proyek lama akan sangat mudah.

Source: https://habr.com/ru/post/id455335/


All Articles