编译好pycaffe在import时遇到这个问题:ImportError: No module named google.protobuf.internal

编译好pycaffe在import时遇到这个问题:ImportError: No module named google.protobuf.internal

解决方法:

没有anaconda: pip install protobuf (编译caffe就需要这个protobuf)

有anaconda: conda install protobuf (最后装了libprotobuf和protobuf 3.5.2)

======================================================

使用系统自带的python(root下的python,路径为/usr/bin/python)能import这个2.6.1版本的protobuf

使用anaconda自带的python(anaconda2/bin/python)则无法import这个版本的protobuf,可能和protobuf-2.6.1-py2.7-nspkg.pth这个文件有关,内容如下:

    import sys, types, os;
    has_mfs = sys.version_info > (3, 5);
    p = os.path.join(sys._getframe(1).f_locals['sitedir'], *('google',));
    importlib = has_mfs and __import__('importlib.util');
    has_mfs and __import__('importlib.machinery');
    m = has_mfs and sys.modules.setdefault('google', importlib.util.module_from_spec(importlib.machinery.PathFinder.find_spec('google', [os.path.dirname(p)])));
    m = m or sys.modules.setdefault('google', types.ModuleType('google'));
    mp = (m or []) and m.__dict__.setdefault('__path__',[]);
    (p not in mp) and mp.append(p)

如果直接from google.protobuf.internal import enum_type_wrapper会ImportError: No module named google.protobuf.internal

这个文件可能定义了import子包的规则,不过奇怪的是anaconda 自带python的pip也是安在这里,就算这样安装成功也没法import。只有用conda install protobuf才能成功import。

Anaconda官网说:

    You can download other packages using the pip install command that is installed with Anaconda. Pip packages provide many of the features of conda packages and in most cases they can work together.

通过sys.path可以看到protobuf3.5.2被装在anaconda2/lib/python2.7/site-packages里了。

搞不懂anaconda怎么组织python环境的,就这时候会忽略通过pip安装的protobuf 2.6.1。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值