Web2py: <type 'exceptions.ImportError'> (导入错误("Cannot import module 'applications.*.modules.paramiko'",)

Web2py: <type 'exceptions.ImportError'> (ImportError("Cannot import module 'applications.*.modules.paramiko'",)

我相信这个问题已经在各种论坛和这里得到解决。可接受的解决方案似乎是使用 web2py 的源版本。我正在使用它。我通过 运行 setup-web2py-ubuntu.sh 在我的 ubuntu 机器上设置了 web2py。

版本

2.15.4-stable+timestamp.2017.09.02.04.02.22
(Running on Apache/2.4.18 (Ubuntu), Python 2.7.12)

但是当我尝试加载使用 paramiko 并加载其他 python 库的应用程序时,出现此错误。请帮忙。

Traceback (most recent call last):
  File "/home/www-data/web2py/gluon/restricted.py", line 219, in restricted
    exec(ccode, environment)
  File "/home/www-data/web2py/applications/rip/models/scheduler.py", line 3, in <module>
    import paramiko
  File "/home/www-data/web2py/gluon/custom_import.py", line 104, in custom_importer
    raise ImportError(e1, import_tb)  # there an import error in the module
ImportError: (ImportError("Cannot import module 'applications.rip.modules.paramiko'",), <traceback object at 0xac07eb6c>)

P.S: rip 是我的应用程序名称。

翻阅书籍后,我开始知道我们必须在 web2py 模块目录中包含 python 库。

sudo pip install paramiko --target /home/www-data/web2py/applications/<your_application_name>/modules

如果您想将任何包安装到该目录,默认情况下该目录会进入站点包,您可以这样做。

python setup.py install --prefix=/home/www-data/web2py/applications/<your_application>/modules

这对我来说非常有效。

理论上 web2py 应该根据此 https://groups.google.com/u/1/g/web2py/c/piqB_l1T7pU.

获取安装在虚拟环境或系统路径中的任何库

正如 link 所说,如果库在 python 中工作 shell 应该在 web2py 中工作。

我遇到了类似的问题,但我不想在 de 文件夹 modules 中安装 lib。我的问题是 web2py 文件夹名称,而不是使用 web2py 我使用的是 web2py2 (参考 python 2.7).显然 web2py 不支持它。