尝试从导入pubsub时,没有名为service_account的模块谷歌.cloud

2024-05-23 23:23:23 发布

您现在位置:Python中文网/ 问答频道 /正文

编辑:

问题是我试图从ouath2clientpip库导入 但是 我有一个名为Whatever的当前模块,该模块使用ouath2client的本地版本,如果我尝试更新{}失败。在

所以我想用site-packages中的ouath2client来表示pubsub 但是Whatever模块的本地目录ouath2client。 试着这样做:

unique_path = '/root/.virtualenvs/simple_worker/lib/python2.7/site-packages'
unique_path = '/root/.virtualenvs/simple_worker/lib/python2.7/site-packages'
sys.path.insert(0, unique_path)
from google.cloud import pubsub
sys.path.remove(unique_path)

但我还是得到了ImportError: No module named service_account

想经营一家酒吧酒吧。获取此错误:

^{pr2}$

相关PIP:

gapic-google-pubsub-v1==0.10.1
google-cloud-pubsub==0.21.0
grpc-google-pubsub-v1==0.10.1
oauth2client==3.0.0

签入了oauth2client目录,但我确实看到了service_account

ls  /root/.virtualenvs/app_engine_workers/lib/python2.7/site-packages/oauth2client/
__init__.py   _openssl_crypt.py       _pycrypto_crypt.py   clientsecrets.py   crypt.pyc           service_account.pyc  util.pyc
__init__.pyc  _openssl_crypt.pyc      _pycrypto_crypt.pyc  clientsecrets.pyc  file.py             tools.py
_helpers.py   _pure_python_crypt.py   client.py            contrib            file.pyc            tools.pyc
_helpers.pyc  _pure_python_crypt.pyc  client.pyc           crypt.py           service_account.py  util.py

所以我不知道/google/cloud/client.py试图从何处导入

当尝试直接从python控制台导入时

(app_engine_workers)root@worker-test-docker-delete2:/proj/Backend/Framework/Workers# p
Python 2.7.3 (default, Mar 13 2014, 11:03:55)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from google.cloud import pubsub
>>> 

然后它起作用了,奇怪。在


Tags: 模块pathpycloudpackagesservicegooglesite
1条回答
网友
1楼 · 发布于 2024-05-23 23:23:23

pubsub中的导入不会在pubsub本身被导入的同时得到评估。稍后,在运行时,在您已经从sys.path中删除unique_path之后,将对它们进行评估。在

真正的问题是如何使用相同的名称导入两个不同版本的Python模块,这不是Python在不使用一些复杂的技巧的情况下允许您这样做的。由于这通常是一个坏主意,理想的解决方案是重写Whatever以使用oauth2client的最新版本。在

相关问题 更多 >