好的我跟随“成为技术营销人员”课程,并尝试学习如何使用GSpread管理Google Spreadsheets。我已按照http://gspread.readthedocs.io/en/latest/oauth2.html处的文档进行操作。我已按照上面第二个网址中的步骤操作了一个包含以下代码的文档:
import gspread
from oauth2client.service_account import ServiceAccountCredentials
scope = ['https://spreadsheets.google.com/feeds']
credentials = ServiceAccountCredentials.from_json_keyfile_name('DFS Google Sheets Data Imports-7205de852ff7.json', scope)
gc = gspread.authorize(credentials)
wks = gc.open("Authority Scraper").sheet1
wks.update_cell(1,2,"Hello World!")
由此我在终端中收到错误:来自oauth2client.service_account import ServiceAccountCredentials ImportError:没有名为oauth2client.service_account
的模块有人请帮助我。其他没有名为oath2client.service_account的模块的答案对我不起作用。谢谢!
答案 0 :(得分:14)
运行此命令对我有用 -
<input type="hidden" value="" class="process_custom_images" id="process_custom_images">
<button class="button button_style set_custom_images"><span><i class="fa fa-upload" aria-hidden="true"></i></span><?php _e( 'Upload Image'); ?></button>
<script>
jQuery(document).ready(function() {
var $ = jQuery;
if ($('.set_custom_images').length > 0) {
if ( typeof wp !== 'undefined' && wp.media && wp.media.editor) {
$(document).on('click', '.set_custom_images', function(e) {
e.preventDefault();
var button = $(this);
var id = button.prev();
wp.media.editor.send.attachment = function(props, attachment) {
id.val(attachment.id);
};
wp.media.editor.open(button);
return false;
});
}
}
});
</script>
来自oauth2client库github repo
答案 1 :(得分:3)
这是因为OS X El Capitan已经安装了六个1.4.1,当它尝试卸载它时,它没有权限这样做,因为系统完整性保护甚至不允许root修改这些目录。
在答案中提到的几个解决方法中,可能值得尝试pip install --ignore-installed six
以避免尝试卸载系统的six
包。
答案 2 :(得分:1)
所以我刚刚遇到了这个问题,最终成了我的路径问题。当然,我知道这有点牵强附会(因为每个人的开发环境都不同),但是在这里写这个以防万一它可以帮助别人。
TLDR 确保您的$PYTHONPATH
无法解决问题。
回想一下当你做&#34;导入&#34;在python中,python检查sys.path中的包。此列表具有优先顺序(即,如果在列表的早期路径中找到包,则将使用该包)。
在我的情况下,看起来我的$PYTHONPATH
在前一段时间做了一些appengine的东西时被修改了。事实证明,我的appengine有自己的oauth2client
lib,它已经很老了。
结果,当python尝试from oauth2client.service_account
时,它抓住了appengine中的oauth2client
而不是我期待它抓取的oauth2client
($PYTHONPATH
的结果已被修改)。
您可以通过在导入调用之前打印sys.path来验证是否还发生了这种情况:
import sys
print sys.path
from oauth2client.service_account import ServiceAccountCredentials
在我的情况下,我可以清楚地看到一堆优先考虑的追加路径。这导致我检查我的~/.bash_profile
我发现这行的地方:
export PYTHONPATH=$PYTHONPATH::$LOCAL_APPENGINE_HOME/lib/:$LOCAL_APPENGINE_HOME/lib/yaml/:$LOCAL_APPENGINE_HOME:$LOCAL_APPENGINE_HOME/lib/webapp2-2.5.2/`
评论说,开始一个新的shell,一切都很有用。
答案 3 :(得分:1)
您可以通过检查库中是否有多个文件夹来修复错误。
cordova.js
您只需要删除其中一个文件夹或更改编译器中的库路径。
以下是我就该主题制作的视频的链接: