Kompiler Protokol Paket PYPI
Paket PYPI yang menyediakan protok yang dapat diinstalasi Pip dapat dieksekusi.
Paket ini tidak menyediakan kode Python apa pun, ia hanya menyediakan protoc yang tidak dapat diubah. Versi dengan demikian juga mengikuti versi resmi protoc , dan berbeda dengan versi runtime protobuf.
Perbedaan paket ini untuk wheel protoc dan protoc-wheel-0 adalah bahwa paket-paket itu membungkus protoc dengan python. Sedangkan paket ini hanya menyediakan protoc yang dapat dieksekusi, tanpa yang lain. Sebagai akibatnya, Anda dapat secara langsung memanggil protoc setelah menginstal paket ini di lingkungan Anda. Ini membuatnya sempurna untuk menyediakan protoc yang dapat dieksekusi di mana pun Anda membutuhkan hal yang sebenarnya tersedia di PATH Anda, misalnya bersama dengan BUF (jika Anda melakukannya, Anda mungkin ingin memeriksa BUF-EXE juga).
Perhatikan bahwa proyek ini tidak berafiliasi dengan atau didukung oleh Google atau tim protobuf. Suffix
-exedalam nama dipilih untuk memastikan bahwa namaprotoctetap tersedia, untuk berjaga -jaga jika akan ada paket resmi.
PERINGATAN Proses redistribusi belum sepenuhnya otomatis, karena saya sedang dalam proses membangun perkakas. Saat ini hanya rilis
protocterbaru yang tersedia, dan dibuat semi-manual dengan skrip yang saat ini Anda lihat di repositori. Rencananya adalah untuk sepenuhnya mengotomatiskan semuanya, dan memberikan rilisprotocbaru dengan 24 jam.
Cukup gunakan protoc sebagai yang dapat dieksekusi dalam proses abstraksi apa pun yang Anda gunakan, terlepas dari sistem operasi Anda. Satu -satunya persyaratan adalah bahwa PATH Anda diatur dengan benar sehingga protoc (atau protoc.exe pada windows) ditemukan. Misalnya, Anda dapat menggunakan pip dan lingkungan virtual dasar:
# example.py
import subprocess
subprocess . check_call ([ "command" , "-v" , "protoc" ])
subprocess . check_call ([ "protoc" , "--version" ]) cd /tmp
python -m venv venv
source venv/bin/activate
pip install protoc-exe
command -v protoc # /tmp/venv/bin/protoc
protoc --version # libprotoc x.y[.z]
python example.py
# /tmp/venv/bin/protoc
# libprotoc x.y[.z]
rm -fr venv/Perhatikan bahwa contoh tersebut menggunakan shell yang sesuai dengan POSIX, tetapi juga bekerja pada sistem non-Posix. Lihatlah tindakan GitHub.