在python应用程序中导入Google Cloud Bigquery api模块时出错

2024-05-09 01:26:28 发布

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

我正试图将bigquery导入我的python应用程序from google.cloud import bigquery,并使用dev_appserver.py在本地运行它,但收到一个错误:

File "/Volumes/Budhi/Users/anjas/Projects/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 240, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "/Volumes/Budhi/Users/anjas/Projects/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 299, in _LoadHandler
handler, path, err = LoadObject(self._handler)
File "/Volumes/Budhi/Users/anjas/Projects/google-cloud-sdk/platform/google_appengine/google/appengine/runtime/wsgi.py", line 85, in LoadObject
obj = __import__(path[0])
File "/Volumes/Budhi/Users/anjas/Projects/wordworks/urlworker/main.py", line 9, in <module>
from google.cloud import bigquery
File "/Volumes/Budhi/Users/anjas/Projects/google-cloud-sdk/platform/google_appengine/google/appengine/tools/devappserver2/python/sandbox.py", line 999, in load_module
raise ImportError('No module named %s' % fullname)
ImportError: No module named google.cloud.bigquery

我已经用pip安装了bigquery lib:

pip install --upgrade google-cloud-bigquery

另外,我还尝试将它作为3d party library安装到lib目录中,但没有结果。

尽管当我尝试从python shell导入bigquery lib时它仍然有效:

Python 2.7.10 (default, Jul 30 2016, 18:31:42) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin
Type "help", "copyright", "credits" or "license" for more  information.
>>> from google.cloud import bigquery
>>> 

更新:

似乎安装在project/lib/folder上的“google”模块与google cloud sdk/platform/google廑appengine中的“google”模块发生了冲突。

当你想做的时候

from google.cloud import bigquery

python在google cloud sdk/platform/google-appengine/google中查找模块,而不是在project/lib/google/cloud中查找模块

有什么想法吗?


Tags: pyimportcloudgooglelinesdkbigqueryusers
3条回答

我也有同样的问题。如果在本地环境中运行此命令,则可能需要尝试将lib文件夹位置添加到$PYTHONPATH环境变量中,或在导入bigquery lib(将lib文件夹位置插入指定模块搜索路径的字符串列表)之前添加以下代码行。

import sys    
sys.path.insert(0, 'lib')

我相信这是可行的,因为现在python文件不需要放在包中。

我遇到了完全相同的错误,并通过删除appengine sdk中的google文件夹修复了这个问题,或者您可以尝试将其复制到lib文件夹。这将修复本地开发环境中的问题,但在生产环境中部署服务时需要还原此问题。

我找不到同时保留google cloud sdk/platform/google-appengine/googleproject/lib/google/cloud的解决方法。你需要删除其中一个

您是否在appengine_config.py中添加了lib文件夹?

from google.appengine.ext import vendor
vendor.add('lib')

相关问题 更多 >

    热门问题