我想使用这个类:google-mail-oauth2-tools但如果我会做类似import oauth2
导入的类的事情,那就是python-oauth2,它已被弃用并且不支持 oauth2 )即使名称是 oauth2)我怎么能使用谷歌模块?我需要先安装它吗?
问问题
69 次
1 回答
1
查看您链接的文档,看起来 Google Mailoauth2
模块应该被下载并就地使用。
当然,您可以安装它……但是您不能安装两个同名的(顶级)模块,因此您必须先卸载python-oauth2
。
但是,如果您只是在 Python 2.7 中就地使用它,则可以oauth2.py
在一个目录中拥有一个目录,而在 stdlib 中拥有一个目录。无论您首先导入哪个都会“获胜”;任何后续尝试都import oauth2
将获得第一个。
要强制它导入正确的(以同样适用于旧版 Python 2.x 和 Python 3.x 的方式),您可能希望使用该imp
模块明确地为其提供路径。
例如,如果您打算将其放在oauth2.py
导入它的脚本旁边,而不是仅仅import oauth2
,请执行以下操作:
script_path = os.path.abspath(os.path.dirname(__file__))
f, path, desc = imp.find_module('oauth2', [script_path])
oauth2 = imp.load_module('oauth2', f, path, desc)
sys.path
…尽管在某些情况下,您可以通过假设当前工作目录是脚本目录和/或永久 munging等来逃避作弊,因此您可以通过各种不同的方式简化它——最终,如果它是安全的,只需这个:
sys.path = ['.'] + sys.path
import oauth2
不过,为了安全(和可读性),我会考虑执行以下操作之一:
- 卸载
python-oauth2
。 - 将下载
oauth2.py
的内容重命名为其他名称,例如google_oauth2.py
,然后import google_oauth2
. - 把下载
oauth2.py
好的打包成一个包,这样就可以了,例如import googletools.oauth2
.
于 2013-05-10T23:31:42.087 回答