[英]Error importing Google Cloud Bigquery api module in python app
我試圖from google.cloud import bigquery
導入bigquery到我的python應用程序並使用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
>>>
更新:
似乎安裝到project / lib /文件夾的“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里面
有任何想法嗎?
我遇到了完全相同的錯誤並通過刪除appengine sdk中的google文件夾來修復此問題,或者您可以嘗試將其復制到您的lib文件夾中。 這將解決本地開發環境中的問題,但您需要在生產時部署服務時還原此問題。
我找不到一個解決方法來保持google-cloud-sdk / platform / google_appengine / google和project / lib / google / cloud 。 您需要刪除其中一個
您是否在appengine_config.py中添加了lib文件夾?
from google.appengine.ext import vendor
vendor.add('lib')
我有同樣的問題。 如果您在本地環境中運行此命令,則可能需要嘗試將lib文件夾位置添加到$ PYTHONPATH環境變量中,或者在導入bigquery lib之前添加下面的代碼行,該lib將lib文件夾位置插入到字符串列表中指定模塊的搜索路徑。
import sys
sys.path.insert(0, 'lib')
我相信這是有效的,因為現在python文件不需要在包內。
我認為你正在經歷一些非常接近我正在經歷的事情,盡管我在測試期間看到它。
我想這可能是因為google sdk所需的路徑操作:sdk附帶的lib 在你放入libs文件夾之前會被看到。
這是我發生的事情,有一些細節:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.