【发布时间】:2017-06-06 03:19:17
【问题描述】:
我正在尝试使用uwsgi 设置 Django 服务器。仅使用 poise-python 安装 uwsgi 时,使用以下配方:
python_runtime '3'
python_package 'uwsgi' do
python '3'
end
当我登录机器并在没有任何选项的情况下运行uwsgi时,它会抛出错误:
uwsgi: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
我检查了库,libiconv.so.2 没有按原样安装:
sudo ldconfig -p | grep libiconv
但是,当我按如下方式重新安装它时:
sudo pip uninstall uwsgi
sudo pip install uwsgi
uwsgi 命令再次起作用。奇怪的是,当我检查libiconv.so.2是否安装时,它仍然没有安装。
我应该如何告诉厨师正确安装uwsgi而不使用execute来运行我所做的命令?
注意:我正在使用测试厨房,并且在运行任何命令之前已经重置了虚拟环境。操作系统是debian 8.6。
【问题讨论】:
-
iconv 可能被嵌入到 python virtualenv 中,因此 ldconfig 可能根本不会显示它。这是一个很长的镜头,但是本机python debian包是否可能与poise安装的运行时冲突?
-
@SzymonSzypulski 你说的 python virtualenv 是什么意思?我没有设置任何 python 虚拟环境。我也不明白本地 python Debian 和 python poise 运行时之间的冲突是什么意思。你是想说poise安装的python 3和Debian的python有冲突吗?
-
是的,poise python可能和系统python有冲突。我提到了python的virtualenv,但是我没有注意到你没有使用它,它是由poise python支持的,它可以让你隔离你的环境。试试看可能。 uwsgi 也支持它。
-
@SzymonSzypulski 一开始我使用的是虚拟环境。我认为这是造成错误的原因,但我错了。我怀疑它和我系统的python有冲突,因为厨房环境根本没有使用python 3。
-
你那里没有安装 python 2 吗?
which python和which pip的输出是什么。
标签: python pip chef-infra uwsgi