python解决ImportError: No module named google.protobuf

原文链接:http://blog.csdn.net/paynetiger/article/details/8197326

 关于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 plain copy print ?
  1. import people_pb2 
  2.  
  3. pbFirstPeople = people_pb2.people() 
  4. pbFirstPeople.name = "joey" 
  5. pbFirstPeople.height = 160 
  6. 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上进行查询。

 

另一参考文件:http://my.oschina.net/leejun2005/blog/109679   (关于 python ImportError: No module named 的问题)

 

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用\[1\]和引用\[2\]的内容,出现"ImportError: No module named google.protobuf"错误可能是因为缺少google.protobuf模块。你可以尝试通过以下步骤解决这个问题: 1. 确保你已经正确安装了protobuf库。你可以使用pip命令来安装protobuf库,例如:pip install protobuf。 2. 如果你使用的是Anaconda环境,可以尝试使用conda命令来安装protobuf库,例如:conda install protobuf。 3. 如果以上方法都没有解决问题,可以尝试手动安装protobuf库。你可以从protobuf的官方网站下载对应版本的protobuf库,并按照官方提供的安装说明进行安装。 4. 如果你已经安装了protobuf库,但仍然出现该错误,可能是因为库路径没有正确配置。你可以尝试将protobuf库所在的路径添加到Python的sys.path中,或者将protobuf库所在的路径添加到PYTHONPATH环境变量中。 希望以上方法能够帮助你解决"ImportError: No module named google.protobuf"错误。如果问题仍然存在,请提供更多详细信息,以便我能够更好地帮助你解决问题。 #### 引用[.reference_title] - *1* *2* [一个奇怪的问题——ImportError: No module named google.protobuf.internal](https://blog.csdn.net/change_things/article/details/80817570)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [python解决ImportError: No module named google.protobuf](https://blog.csdn.net/qinglu000/article/details/17242011)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值