我正在尝试使用课程中的代码来测试oauth以访问twitter。我有一个名为twurl.py的python脚本,它保存了以下代码(隐藏了密钥/令牌):
import urllib
import oauth
import hidden
def augment(url, parameters) :
secrets = hidden.oauth()
consumer = oauth.OAuthConsumer(secrets['consumer_key'], secrets['consumer_secret'])
token = oauth.OAuthToken(secrets['token_key'],secrets['token_secret'])
oauth_request = oauth.OAuthRequest.from_consumer_and_token(consumer,
token=token, http_method='GET', http_url=url, parameters=parameters)
oauth_request.sign_request(oauth.OAuthSignatureMethod_HMAC_SHA1(), consumer, token)
return oauth_request.to_url()我在调用另一个脚本twtest.py中的增强函数:
import urllib
from twurl import augment
url = augment('https://api.twitter.com/1.1/statuses/user_timeline.json',
{'screen_name': 'user', 'count': '2'} )
print url
connection = urllib.urlopen(url)
data = connection.read()
print data
headers = connection.info().dict
print headers我遇到了这个错误:
Traceback (most recent call last):
File "/Users/user/Desktop/python/twtest.py", line 7, in <module>
{'screen_name': 'user', 'count': '2'} )
File "/Users/user/Desktop/Python/twurl.py", line 6, in augment
secrets = hidden.oauth()
AttributeError: 'module' object has no attribute 'oauth'这段代码在我用来学习的一个在线讲座中工作。Oauth是由我安装的,我可以调用dir(oauth)。
我遗漏了什么,为什么oauth没有与twurl脚本一起导入?即使我在twtest.py中导入oauth,也会发生相同的错误。谢谢!
编辑:
隐藏模块是一个被调用变量的列表:
consumer_key = 'string'
consumer_secret = 'string'
token_key = 'string'
token_secret = 'string'发布于 2017-11-23 02:51:04
我也有同样的问题。我在*Python for Everybody这本书的167页找到了解决方案。
对于下一个示例程序,我们将从www.py4e.com/code下载文件twurl.py、hidden.py、oauth.py和twitter1.py,并将它们全部放在计算机上的一个文件夹中。
发布于 2017-08-07 04:27:44
我刚刚遇到了同样的问题(参考了Dr Chuck课程中关于python的twurl.py脚本)。
当我把所有的python脚本放在与twurl.py (特别是oauth.py)相同的文件夹中时,一切都运行得很好。
我的理解是,twurl.py脚本需要另一个脚本(oauth.py),并且安装新的库(如通过pip安装程序安装oauth )不会做任何更改。
https://stackoverflow.com/questions/35757361
复制相似问题