我使用的是一年前编写的Python代码。
我的操作系统是Ubuntu 10.10 with Python 2.6.6。
代码段是:
import mechanize
.....
br.select_form(nr=0)
br['sign_in[email]'] = username
br['sign_in[password]'] = password
tc = mechanize.TextControl('hidden', 'token', {'value':token})
tc.add_to_form(br.form)
self.submit()
当我运行此代码时,我收到此错误:
AttributeError:'module'对象没有属性'TextControl'
有什么问题?原作者的意图是什么?当我谷歌TextControl
时,似乎没有任何与机械化相关的东西。我按apt-get install python-mechanize
安装了机械化。
答案 0 :(得分:0)
看起来您没有使用相同版本的mechanize
库。查看github中的code,我在__init__.py
中看到了这一点:
__all__ = [
...
'TextControl',
'TextareaControl',
]
所以当然应该有一些TextControl
。在github中,版本实际上是在_form.py
中定义的。
答案 1 :(得分:0)
查看源代码,您安装的机械化版本似乎不是您尝试运行的代码的正确版本。
此来源:
https://github.com/jjlee/mechanize/blob/master/mechanize/__init__.py
建议TextControl
应该存在(虽然它已被弃用)。
我建议你删除python-mechanize(使用apt),而是使用easy_install(或从源代码下载并安装)使用更新的mechanize副本。
当然,如果您已经安装了其他依赖旧版本机械工具的软件包,那么最好不要获取源代码,并从中加载模块。