在OS X下在PyCharm上运行GAE GCS,运行时错误"没有名为cloudstorage的模块"

Lin*_*say 10 google-app-engine pycharm google-cloud-storage

我正在尝试将Google云端存储功能添加到已经运行了重要功能的Python GAE应用中.我在我的开发计算机上完全在PyCharm中工作,这是一台运行OS X 10.9.5的Mac.

我创建了一个包含此语句的新Python模块:

import cloudstorage as gcs
Run Code Online (Sandbox Code Playgroud)

https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/getstarted中的示例代码所示

当我第一次添加该行时,PyCharm在编辑器中说"没有名为cloudstorage的模块".

然后,我按照https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/download 上的"pip"和"svn"说明下载GCS客户端库.

在尝试遵循这些说明时,考虑到我之前使用此编程环境的经验,我实际上尝试过使用"pip"三次:

  • 一旦没有"-t"选项,因为我之前从未需要"pip"选项
  • 使用"-t"选项指定我的应用程序目录的"lib"子目录
  • 一旦使用: pip install GoogleAppEngineCloudStorageClient -t /Applications/GoogleAppEngineLauncher.app//Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib,因为我不确定"<your_app_directory/lib>"的含义是什么

如上所述,我还执行了"svn"命令.然后,正如在Ubuntu 14.04上安装python google云存储客户端中所提到的,我运行了"cd gcs-client/src"和"sudo python setup.py install".我在用户根目录中运行了这些命令.

在GCS客户端库的每个成功但不同的安装之后,我查看了我的模块的PyCharm编辑器窗口,它总是具有相同的"没有名为cloudstorage的模块"错误.但作为一个实验,我也会尝试重启PyCharm,并尝试运行我的应用程序.

在某些时候,编辑器窗口停止显示错误.它不是在上面的一个步骤之后立即,而是在我离开阅读各种网页然后再回来再次查看错误之后.我不知道哪个安装是在PyCharm编辑器中摆脱错误消息的安装.

无论如何,每当我尝试运行应用程序时(再次在PyCharm中),我总是在同一个import语句中得到运行时错误"ImportError:No module named cloudstorage".

此应用程序的"运行/调试配置"页面同时选中"将内容根添加到PYTHONPATH"和"将源根添加到PYTHONPATH".

当然,我想要的主要帮助是如何通过"无模块名为cloudstorage"运行时错误,即使import语句不再显示错误.

我想我还有多达三个虚假版本的GCS客户端库.我更关心的是越过"未找到模块",因为它是一个显示阻止,但如果你有任何想法我怎么能删除虚假版本,以便他们不只是躺着,我会是最也感谢你的帮助.

Lin*_*say 12

如果"cloudstorage"目录位于<app>/lib/cloudstorage,则import语句必须指定"lib":

import lib.cloudstorage
Run Code Online (Sandbox Code Playgroud)

就我而言,它是:

import lib.cloudstorage as gcs
Run Code Online (Sandbox Code Playgroud)

顺便说一句,<app>/lib/GoogleAppEngineCloudStorageClient-1.9.5.0-py2.7.egg-info似乎不需要该目录,可以删除该目录.

  • 嗨,@ Jonny.您需要获取Cloudstorage库并将其添加到项目目录中,以便在部署时将其与应用程序的其余部分一起上载.我创建了一个"lib"目录并将我的副本放在那里.我的"lib"目录还有一个文件`__init.py__`,其语句为`import cloudstorage`.我相信我为Cloudstorage获得的安装包含不必要的文件.我保存在"lib"中的唯一一个是目录"cloudstorage". (2认同)

DAV*_*LPH 10

实际上,你还需要

触摸 __init__.py

在lib目录中.这将使cloudstorage模块对"import lib.cloudstorage"命令可见.

亲爱的Google:发行版应该包含此文件(或者程序应该考虑它),并且应该更改演示脚本以反映预期的用法.但更重要的是,为什么你这样分发/ PROLIFERATING库代码?? !!! 为什么不通过gcloud分发?我怎么去为这个图书馆挑选补丁?

  • 这个答案实际上解决了我的问题.我想知道你得到的downvote的原因. (3认同)

归档时间:

查看次数:

6238 次

最近记录:

8 年,2 月 前