| OLD | NEW |
| (Empty) |
| 1 Protocol Buffers - Google's data interchange format | |
| 2 Copyright 2008 Google Inc. | |
| 3 | |
| 4 This directory contains the Python Protocol Buffers runtime library. | |
| 5 | |
| 6 Normally, this directory comes as part of the protobuf package, available | |
| 7 from: | |
| 8 | |
| 9 http://code.google.com/p/protobuf | |
| 10 | |
| 11 The complete package includes the C++ source code, which includes the | |
| 12 Protocol Compiler (protoc). If you downloaded this package from PyPI | |
| 13 or some other Python-specific source, you may have received only the | |
| 14 Python part of the code. In this case, you will need to obtain the | |
| 15 Protocol Compiler from some other source before you can use this | |
| 16 package. | |
| 17 | |
| 18 Development Warning | |
| 19 =================== | |
| 20 | |
| 21 The Python implementation of Protocol Buffers is not as mature as the C++ | |
| 22 and Java implementations. It may be more buggy, and it is known to be | |
| 23 pretty slow at this time. If you would like to help fix these issues, | |
| 24 join the Protocol Buffers discussion list and let us know! | |
| 25 | |
| 26 Installation | |
| 27 ============ | |
| 28 | |
| 29 1) Make sure you have Python 2.4 or newer. If in doubt, run: | |
| 30 | |
| 31 $ python -V | |
| 32 | |
| 33 2) If you do not have setuptools installed, note that it will be | |
| 34 downloaded and installed automatically as soon as you run setup.py. | |
| 35 If you would rather install it manually, you may do so by following | |
| 36 the instructions on this page: | |
| 37 | |
| 38 http://peak.telecommunity.com/DevCenter/EasyInstall#installation-instructio
ns | |
| 39 | |
| 40 3) Build the C++ code, or install a binary distribution of protoc. If | |
| 41 you install a binary distribution, make sure that it is the same | |
| 42 version as this package. If in doubt, run: | |
| 43 | |
| 44 $ protoc --version | |
| 45 | |
| 46 4) Run the tests: | |
| 47 | |
| 48 $ python setup.py test | |
| 49 | |
| 50 If some tests fail, this library may not work correctly on your | |
| 51 system. Continue at your own risk. | |
| 52 | |
| 53 Please note that there is a known problem with some versions of | |
| 54 Python on Cygwin which causes the tests to fail after printing the | |
| 55 error: "sem_init: Resource temporarily unavailable". This appears | |
| 56 to be a bug either in Cygwin or in Python: | |
| 57 http://www.cygwin.com/ml/cygwin/2005-07/msg01378.html | |
| 58 We do not know if or when it might me fixed. We also do not know | |
| 59 how likely it is that this bug will affect users in practice. | |
| 60 | |
| 61 5) Install: | |
| 62 | |
| 63 $ python setup.py install | |
| 64 | |
| 65 This step may require superuser privileges. | |
| 66 NOTE: To use C++ implementation, you need to install C++ protobuf runtime | |
| 67 library of the same version and export the environment variable before this | |
| 68 step. See the "C++ Implementation" section below for more details. | |
| 69 | |
| 70 Usage | |
| 71 ===== | |
| 72 | |
| 73 The complete documentation for Protocol Buffers is available via the | |
| 74 web at: | |
| 75 | |
| 76 http://code.google.com/apis/protocolbuffers/ | |
| 77 | |
| 78 C++ Implementation | |
| 79 ================== | |
| 80 | |
| 81 WARNING: This is EXPERIMENTAL and only available for CPython platforms. | |
| 82 | |
| 83 The C++ implementation for Python messages is built as a Python extension to | |
| 84 improve the overall protobuf Python performance. | |
| 85 | |
| 86 To use the C++ implementation, you need to: | |
| 87 1) Install the C++ protobuf runtime library, please see instructions in the | |
| 88 parent directory. | |
| 89 2) Export an environment variable: | |
| 90 | |
| 91 $ export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=cpp | |
| 92 | |
| 93 You need to export this variable before running setup.py script to build and | |
| 94 install the extension. You must also set the variable at runtime, otherwise | |
| 95 the pure-Python implementation will be used. In a future release, we will | |
| 96 change the default so that C++ implementation is used whenever it is available. | |
| 97 It is strongly recommended to run `python setup.py test` after setting the | |
| 98 variable to "cpp", so the tests will be against C++ implemented Python | |
| 99 messages. | |
| 100 | |
| OLD | NEW |