python解决ImportError: No module named google.protobuf
2013-12-10 11:52
996 查看
原文链接:/article/10527100.html
关于protocol buffer的优点,这里就不多贴废话了,如果涉及到数据传输和解析,使用pb会比自己去写解析代码更有效率,至少对于大部分而言是这样的。。
一、下载&安装
要使用之前先到code.google.com上搜索protocol buffer,下载到本地,解压后依次执行:
./configure
make
make check
make install
最后一步涉及到权限,可能会需要sudo。
二、定义一个proto文件
下面依然是给出一个简单的例子,要使用proto首先需要自己定义一个proto文件,定义一个people.proto文件,内容如下:
message people
{
optional string name = 1;
optional int32 height = 2;
}
三、生成一个python可用的py文件
然后就是生成对应的py文件,命令如下:
protoc -I=./ --python_out=./ people.proto
其中-I是source的路径,--python_out表示对应python库的生成路径,然后是对应的proto文件。当然,pb还支持c++和java,修改--python_out即可。
完成后就有对应的people_pb2.py文件了。导入后即可使用,第一次安装后直接用应该会提示:ImportError: No module named google.protobuf,这是因为找不到对应的库路径导致,到你下载的pb路径下,找到python路径,执行sudo python setup.py install,执行完后可以通过执行sudo python setup.py test检查是否有安装成功,如果最后提示
----------------------------------------------------------------------
Ran 193 tests in 0.327s
OK
那么就是安装成功了,此时再导入对应的pb2.py文件即可使用。
--------------------------------------------------------------------------------------------------------------------------------------------------------
执行python setup.py install 时可能有:This script requires setuptools version 0.6c11 to run
可从:http://download.csdn.net/download/fhqsse220/5602687下载
gzip -d setuptools-0.6c11.tar.gz
tar xf setuptools-0.6c11.tar
cd setuptools-0.6c11python setup.py install
返回如下则表示安装成功
Installed /usr/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg
Processing dependencies for setuptools==0.6c11
Finished processing dependencies for setuptools==0.6c11
----------------------------------------------------------------------------------------------
继续报错:error: package directory 'google/protobuf/compiler' does not exist
解决办法:在google/protobuf/下创建compiler文件夹
再次在protobuf文件夹下运行:python setup.py install 。最终提示安装成功。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
四、导入使用的简单例子
给出一个简单的调试例子:
[python]
view plaincopyprint?
import people_pb2
pbFirstPeople = people_pb2.people()
pbFirstPeople.name =
"joey"
pbFirstPeople.height =
160
print pbFirstPeople
输出结果为:
name: "joey"
height: 160
至此就完成了一个简单的pb下载安装以及应用的过程,关于pb的详细使用,可以在code.google.com上进行查询。
另一参考文件:/article/2204163.html (关于 python ImportError: No module named 的问题)
关于protocol buffer的优点,这里就不多贴废话了,如果涉及到数据传输和解析,使用pb会比自己去写解析代码更有效率,至少对于大部分而言是这样的。。
一、下载&安装
要使用之前先到code.google.com上搜索protocol buffer,下载到本地,解压后依次执行:
./configure
make
make check
make install
最后一步涉及到权限,可能会需要sudo。
二、定义一个proto文件
下面依然是给出一个简单的例子,要使用proto首先需要自己定义一个proto文件,定义一个people.proto文件,内容如下:
message people
{
optional string name = 1;
optional int32 height = 2;
}
三、生成一个python可用的py文件
然后就是生成对应的py文件,命令如下:
protoc -I=./ --python_out=./ people.proto
其中-I是source的路径,--python_out表示对应python库的生成路径,然后是对应的proto文件。当然,pb还支持c++和java,修改--python_out即可。
完成后就有对应的people_pb2.py文件了。导入后即可使用,第一次安装后直接用应该会提示:ImportError: No module named google.protobuf,这是因为找不到对应的库路径导致,到你下载的pb路径下,找到python路径,执行sudo python setup.py install,执行完后可以通过执行sudo python setup.py test检查是否有安装成功,如果最后提示
----------------------------------------------------------------------
Ran 193 tests in 0.327s
OK
那么就是安装成功了,此时再导入对应的pb2.py文件即可使用。
--------------------------------------------------------------------------------------------------------------------------------------------------------
执行python setup.py install 时可能有:This script requires setuptools version 0.6c11 to run
可从:http://download.csdn.net/download/fhqsse220/5602687下载
gzip -d setuptools-0.6c11.tar.gz
tar xf setuptools-0.6c11.tar
cd setuptools-0.6c11python setup.py install
返回如下则表示安装成功
Installed /usr/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg
Processing dependencies for setuptools==0.6c11
Finished processing dependencies for setuptools==0.6c11
----------------------------------------------------------------------------------------------
继续报错:error: package directory 'google/protobuf/compiler' does not exist
解决办法:在google/protobuf/下创建compiler文件夹
再次在protobuf文件夹下运行:python setup.py install 。最终提示安装成功。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
四、导入使用的简单例子
给出一个简单的调试例子:
[python]
view plaincopyprint?
import people_pb2
pbFirstPeople = people_pb2.people()
pbFirstPeople.name =
"joey"
pbFirstPeople.height =
160
print pbFirstPeople
import people_pb2 pbFirstPeople = people_pb2.people() pbFirstPeople.name = "joey" pbFirstPeople.height = 160 print pbFirstPeople
输出结果为:
name: "joey"
height: 160
至此就完成了一个简单的pb下载安装以及应用的过程,关于pb的详细使用,可以在code.google.com上进行查询。
另一参考文件:/article/2204163.html (关于 python ImportError: No module named 的问题)
相关文章推荐
- python解决ImportError: No module named google.protobuf
- python解决ImportError: No module named google.protobuf
- win7下 caffe python接口配置 import caffe时报错,ImportError: No module named google.protobuf.internal
- win10下Import caffe时出现“ImportError: No module named google.protobuf.internal”的解决办法
- (原)python中import caffe提示no module named google.protobuf.internal
- 深度学习Caffe实战笔记(12)Caffe 使用Python接口No module named google.protobuf.internal修复方案
- google protobuf编译安装(ImportError: No module named google.protobuf.internal)
- ImportError: No module named google.protobuf.internal
- google protobuf编译安装(ImportError: No module named google.protobuf.internal)
- 【Caffe-windows】 ImportError: No module named google.protobuf.internal
- linux Anaconda2 ImportError: No module named google.protobuf
- ImportError: No module named google.protobuf.internal
- 【深度学习】笔记11:python caffe报错:No module named google.protobuf.internal
- 解决No module named google.protobuf.internal
- python导入caffe时出现python caffe报错:No module named google.protobuf.internal
- ImportError: No module named google.protobuf
- python import error no module named google.protobuf
- google protobuf编译安装(ImportError: No module named google.protobuf.internal)
- ImportError: No module named cv2,No module named google.protobuf.internal等
- ImportError: No module named google.protobuf