从 django 应用程序调用 unoconv 的问题,在 virtualenv 中运行

els*_*sar 3 python django libreoffice

我有一个使用子进程调用 unoconv 的 django 应用程序。在我的开发环境中运行时它工作正常,但在生产环境中运行时会出错。

它给出了这个错误

“unoconv:在/usr/lib/libreoffice 中找不到合适的pyuno 库和python 二进制组合错误:没有名为uno 的模块

unoconv:在您的系统上找不到合适的办公安装。错误:请找到您的办公室安装并将您的反馈发送至:http : //github.com/dagwieers/unoconv/issues

但是 unoconv 从命令行运行得很好。

由于我将 django 应用程序作为 uwsgi vassal 运行,因此它可能与特权有关,但在我的一生中,我无法弄清楚如何修复它。

PS - django 应用程序不会启动 unoconv 侦听器,它已经在运行。

编辑- 这不是权限问题,而是路径问题,因为 unoconv 是从错误的 Python 解释器(virtualenv 解释器)调用的

els*_*sar 5

由于应用程序在 virtualenv 中运行,因此使用 virtualenv python 解释器而不是系统解释器调用 unoconv。

如果您有 virtualenvwrapper,则修复非常简单 -在我的情况下,只需add2virtualenv使用包含目录的路径uno.pyunohelper.py作为参数 ( /usr/share/pyshared)调用命令。