[英]How to use self-compiled Python from an Upstart script on Ubuntu 14.04
我正在尝试使用从Ubuntu 14.04上的Upstart脚本安装在“ / opt”下的自定义自编译Python版本。 常规设置如下所示:
陷阱错误函数定义为
function error_handler() { python << END # python code... END } trap 'error_handler ${LINENO} $?' ERR
以及使用自定义Python安装中的pip,可将任何第三方副程序包安装在“ / opt”下
我也尝试过使用“ .bash_profile”文件,并从中仅调用“ .bashrc”
在“ /var/log/upstart/service.log”下的日志文件中,我看到错误消息,指出找不到任何已安装的第三方Python副程序包。 这些软件包安装在“ / opt”下
自定义Python安装本身可以按预期工作。 我可以运行任何Python代码并导入任何已安装的副程序包。
到目前为止,我已经尝试过使它作为服务工作:
sudo -u user_name
命令从“ pre-start”部分调用bash脚本 在bash脚本中修改PATH env变量:
PATH=/opt/bin:$PATH export PATH function error_handler() { PATH="$PATH" python << END # python code... END } trap 'error_handler ${LINENO} $?' ERR
设置PYTHONHOME
和PYTHONPATH env
变量
sys.path.append
从Python代码更新库搜索路径。 这是我的问题:我如何说服启动服务选择要运行的Python版本并使用安装在“ / opt”下的软件包?
基本上,我想在Ubuntu 14.04上使用Python 2.7.9。 到目前为止,我找不到任何预编译的Ubuntu 14.04软件包。
通过将setuid
调用添加到服务配置中并适当使用Python虚拟环境,我们能够使用自编译的Python。
奥列格
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.