在 web2py 中使用模块时未定义全局名称 'paramiko'

Global name 'paramiko' not defined when using module in web2py

我正在 运行从 Ubuntu VM 和 Python 2.7 中获取 web2py 的源代码版本。我正在尝试将 Paramiko 库用于 SSH 功能,但以下代码会出现此错误:

代码

from paramiko import client

错误

Traceback (most recent call last):
  File "/home/localadmin/scanme/gluon/restricted.py", line 227, in restricted
    exec ccode in environment
  File "/home/localadmin/scanme/applications/nmap/controllers/default.py", line 418, in <module>
  File "/home/localadmin/scanme/gluon/globals.py", line 417, in <lambda>
    self._caller = lambda f: f()
  File "/home/localadmin/scanme/applications/nmap/controllers/default.py", line 50, in login
    except paramiko.ssh_exception.AuthenticationException:
NameError: global name 'paramiko' is not defined

令我困惑的是,当我在 web2py 之外 运行 Python 时,导入和使用 paramiko 库在我的系统上工作得很好。

我认为在我的本地 Python 安装中可用的所有模块在使用源版本时应该在 web2py 中可用。这就是我从命令行启动 Web 服务器的方式:

python2.7 web2py.py

有谁知道可能导致此问题的原因是什么?值得注意的是,在安装库后我没有在我的系统上找到 "paramiko" 目录,就像我在 web2py 中工作的其他模块一样。

您的导入语句是:

from paramiko import client

但是在你的代码中,你有:

except paramiko.ssh_exception.AuthenticationException

为了引用paramiko,您必须导入它:

import paramiko