2013-03-28 17 views
7

Bana öyle geliyor ki, python'da protobuf kullanıyorum, önce kurdum, böylece kurulum araçlarını da kurdum. Bana göre, protobuf'u kullanarak her türlü python kodunu kullanmak istediğim her makineye protobuf yüklemek zorunda kalacağımdan, bu, taşınabilirliği ciddi şekilde sınırlandırıyor gibi görünüyor.Kullanmadan python'da google'ın protobufunu kullanarak

Bu yüzden sorum şu: python için protobuf'u böyle bir şekilde paketlemenin bir yolu var mı, python koduyla onu kullanarak dağıtılabilir mi?

Bunun hakkında herhangi bir bilgi takdir edilecektir.

cevap

3

Paket, bir deneysel C++ uzantısı içeriyor ve kurulum dosyası Python dosyalarını oluşturur, ancak uzantı varsayılan olarak devre dışı bırakıldığında, betiğinizle birlikte setup.py build sonucunu iyi bir şekilde ekleyebilmeniz gerekir.

Python paketinin yüklenecek komut satırı aracına hala ihtiyaç duyduğunu unutmayın. Araç sizin için bazı Python oluşturmak için kullanılır. O kullanılmaya başladıktan sonra

, çalıştırın:

cd python 
python setup.py build 

ve komut dağıtımına build/lib/google dizini kopyalamak, içe aktarılamaz için sys.path açık olması gerekiyor.

Alternatif olarak, setup.py bdist --formats=zip kullanın ve sys.path ürününüze sonuçlanan zip dosyasına (dist/protobuf-<version>.<platform>-<architecture>.zip'da) giden yolu ekleyin. Yeniden adlandırmak iyi olmalı.

Paketin bir ad alanı kullandığını ve bu nedenle pkg_resources modülünün de kullanılabilir olması gerektiğini unutmayın. Yalnızca ad alanını google/__init__.py'da bildirmek için kullanılır.

+0

Bu denemeyi denedim nasıl olduğunu anlayamadım. Zip ve yumurta dosyalarıyla ne yapacağınıza dair bana bir işaret verebilir misiniz lütfen. Sadece onları PythonPath'a koymanız hile yapmıyor gibi görünüyor. – Cornelius

+0

@ Cornelius: Güncelleme sürecindeydim; 'build' yeterli, gerçekten. –

+0

Ah, evet, ilk tahminim buydu ama bunu yaparsam hata iletisini alırım: "ImportError: pkg_resources adlı bir modül yok". Sözde yüklü kurulum kurulumları yok çünkü. Komut satırı aracıyla kastettiğin şey bu mu? – Cornelius

İlgili konular