我正在尝试将bigquery导入我的python app 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方库安装到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
>>>
更新
似乎&#34; google&#34;安装到project / lib /文件夹的模块与&#34; google&#34; google-cloud-sdk / platform / google_appengine中的模块。
尝试时
from google.cloud import bigquery
python在项目/ lib / google / cloud
内查找 google-cloud-sdk / platform / google_appengine / google 内的模块有什么想法吗?
答案 0 :(得分:0)
您是否在appengine_config.py中添加了lib文件夹?
from google.appengine.ext import vendor
vendor.add('lib')
答案 1 :(得分:0)
我遇到了同样的问题。如果您在本地环境中运行此命令,则可能需要尝试将lib文件夹位置添加到$ PYTHONPATH环境变量中,或者在导入将lib文件夹位置插入列表的bigquery lib之前添加以下代码行字符串,指定模块的搜索路径。
import sys
sys.path.insert(0, 'lib')
我相信这是有效的,因为现在python文件不需要在包内。
答案 2 :(得分:0)
我认为你正在经历一些非常接近我正在经历的事情,尽管我在测试期间看到它。
我认为这可能是因为google sdk所需的路径操作:sdk附带的libs正在之前看到你放在libs文件夹中的那些。
在这里发生了什么,有一些细节:
答案 3 :(得分:0)
我遇到了完全相同的错误,并通过删除appengine sdk中的google文件夹来解决此问题,或者您可以尝试将其复制到您的lib文件夹中。这将解决本地开发环境中的问题,但是在生产环境上部署服务时,您需要还原该问题。
我找不到同时保留 google-cloud-sdk / platform / google_appengine / google 和 project / lib / google / cloud 的解决方法。您需要删除其中之一