Python 带paramiko的Web2py用于ssh功能

Python 带paramiko的Web2py用于ssh功能,python,ssh,web2py,paramiko,Python,Ssh,Web2py,Paramiko,我有一个通过web2py构建的表单,我需要使用它来验证和注册一台机器,并将其存储到数据库中。验证未通过。我总是收到这样的错误:“休斯顿似乎有一个机器名或超级密码的问题”。如果我在web2py环境之外运行paramiko脚本,它就可以正常工作。请帮忙 表格详情: db.define_table('nsksystem', Field('nskmachinename', length=128, requires = IS_NOT_EMPTY(error_message='Machine Name

我有一个通过web2py构建的表单,我需要使用它来验证和注册一台机器,并将其存储到数据库中。验证未通过。我总是收到这样的错误:“休斯顿似乎有一个机器名或超级密码的问题”。如果我在web2py环境之外运行paramiko脚本,它就可以正常工作。请帮忙

表格详情:

db.define_table('nsksystem',
  Field('nskmachinename', length=128, requires = IS_NOT_EMPTY(error_message='Machine Name cant be empty'), label = T('Machine Name')),
  Field('nskpassword', 'password', length=512,readable=False, label=T('Machine Password')),
  Field('confirmnskpassword', 'password', length=512,readable=False, label=T('Confirm Machine Password'))        )
控制器:default.py(用于在插入前验证表单插入)

控制器:default.py(用于插入数据库)

在建议之后,我删除了try/catch,下面是错误的回溯。我在Lib/ctypes下有wintypes.py。但是仍然无法理解为什么会出现导入错误

  Traceback (most recent call last):
  File "gluon/restricted.py", line 224, in restricted
  File "C:/web2py/applications/click/controllers/default.py", line 53, in <module>
  File "gluon/globals.py", line 393, in <lambda>
  File "gluon/tools.py", line 3444, in f
  File "C:/web2py/applications/click/controllers/default.py", line 39, in machine
    if form.process(onvalidation=machinevalidate).accepted:
   File "gluon/html.py", line 2303, in process
  File "gluon/html.py", line 2240, in validate
  File "gluon/sqlhtml.py", line 1461, in accepts
  File "gluon/html.py", line 2141, in accepts
  File "gluon/html.py", line 146, in call_as_list
  File "C:/web2py/applications/click/controllers/default.py", line 33, in machinevalidate
   ssh.connect(host, username=user,password=pwd)
   File "C:\Python27\lib\site-packages\paramiko\client.py", line 307, in connect
   look_for_keys, gss_auth, gss_kex, gss_deleg_creds, gss_host)
 File "C:\Python27\lib\site-packages\paramiko\client.py", line 456, in _auth
self._agent = Agent()
  File "C:\Python27\lib\site-packages\paramiko\agent.py", line 332, in __init__
from . import win_pageant
 File "gluon/custom_import.py", line 105, in custom_importer
  File "C:\Python27\lib\site-packages\paramiko\win_pageant.py", line 25, in <module>
  import ctypes.wintypes
  File "gluon/custom_import.py", line 105, in custom_importer
 ImportError: No module named wintypes
回溯(最近一次呼叫最后一次):
文件“glion/restricted.py”,第224行,受限
文件“C:/web2py/applications/click/controllers/default.py”,第53行,在
文件“glion/globals.py”,第393行,在
文件“glion/tools.py”,第3444行,f中
文件“C:/web2py/applications/click/controllers/default.py”,第39行,在机器中
如果form.process(onvalidation=machinevalidate)被接受:
文件“glion/html.py”,第2303行,正在处理中
文件“glion/html.py”,第2240行,在validate中
文件“gloon/sqlhtml.py”,第1461行,在
文件“gloon/html.py”,第2141行,第2行
文件“glion/html.py”,第146行,在调用列表中
machinevalidate中第33行的文件“C:/web2py/applications/click/controllers/default.py”
连接(主机,用户名=用户,密码=pwd)
文件“C:\Python27\lib\site packages\paramiko\client.py”,第307行,在connect中
查找密钥、gss认证、gss认证、gss认证、gss认证、gss认证、gss认证、gss认证主机)
文件“C:\Python27\lib\site packages\paramiko\client.py”,第456行,在_auth中
self.\u agent=agent()
文件“C:\Python27\lib\site packages\paramiko\agent.py”,第332行,在_init中__
从…起导入win_选美
文件“glion/custom_import.py”,第105行,在custom_importer中
文件“C:\Python27\lib\site packages\paramiko\win\u pageant.py”,第25行,在
导入ctypes.wintypes
文件“glion/custom_import.py”,第105行,在custom_importer中
ImportError:没有名为wintypes的模块
找到了解决方案。。。
我使用的是web2py的编译版本。当我使用源代码时,导入模块不再令人头痛。感谢Andrew Magee提醒大家…

我首先要去掉
try
/
之外的
,然后让异常消失,这样您就可以看到异常的实际情况。删除try/catch后发布错误日志。它给出了一个导入错误。但是wintypes模块在我的机器的ctypes下。
@auth.requires_login()
def machine():
form = SQLFORM(db.nsksystem)
if form.process(onvalidation=machinevalidate).accepted:
    response.flash = 'The machine is now registered to the user.'
elif form.errors:
    response.flash = 'Form has errors'
else:
    response.flash = 'Please register a machine to your ID'
return dict(form=form)
  Traceback (most recent call last):
  File "gluon/restricted.py", line 224, in restricted
  File "C:/web2py/applications/click/controllers/default.py", line 53, in <module>
  File "gluon/globals.py", line 393, in <lambda>
  File "gluon/tools.py", line 3444, in f
  File "C:/web2py/applications/click/controllers/default.py", line 39, in machine
    if form.process(onvalidation=machinevalidate).accepted:
   File "gluon/html.py", line 2303, in process
  File "gluon/html.py", line 2240, in validate
  File "gluon/sqlhtml.py", line 1461, in accepts
  File "gluon/html.py", line 2141, in accepts
  File "gluon/html.py", line 146, in call_as_list
  File "C:/web2py/applications/click/controllers/default.py", line 33, in machinevalidate
   ssh.connect(host, username=user,password=pwd)
   File "C:\Python27\lib\site-packages\paramiko\client.py", line 307, in connect
   look_for_keys, gss_auth, gss_kex, gss_deleg_creds, gss_host)
 File "C:\Python27\lib\site-packages\paramiko\client.py", line 456, in _auth
self._agent = Agent()
  File "C:\Python27\lib\site-packages\paramiko\agent.py", line 332, in __init__
from . import win_pageant
 File "gluon/custom_import.py", line 105, in custom_importer
  File "C:\Python27\lib\site-packages\paramiko\win_pageant.py", line 25, in <module>
  import ctypes.wintypes
  File "gluon/custom_import.py", line 105, in custom_importer
 ImportError: No module named wintypes