您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在Linux上没有管理权限的情况下为python安装lxml?

如何在Linux上没有管理权限的情况下为python安装lxml?

如果您没有管理员权限,并且不能说服管理员为您安装相关的软件包,则有两种选择:

-下载来源libxml2libxslt编译并您在安装它们$HOME的地方,然后构建Python- LXML对这些副本。

这是一个非常复杂的示例,因为如果您缺少其他依赖项,则可能需要很长时间才能下载/编译。

下载与服务器上使用的Linux相同发行版的二进制软件包,然后将内容提取到主目录下。

例如,如果您正在运行Ubuntu Lucid,则首先要找到您的操作系统正在使用的版本,然后下载缺少的软件包:

% uname -m
x86_64
% aptitude show libxml2 | grep Version
Version: 2.7.6.dfsg-1ubuntu1.1

接下来,直接从ubuntu服务器下载您需要的软件包:

% mkdir root ; cd root
% wget http://us.archive.ubuntu.com/ubuntu/pool/main/libx/libxml2/libxml2_2.7.6.dfsg-1ubuntu1.1_amd64.deb
% wget http://us.archive.ubuntu.com/ubuntu/pool/main/libx/libxslt/libxslt1.1_1.1.26-6build1_amd64.deb
% wget http://us.archive.ubuntu.com/ubuntu/pool/main/l/lxml/python-lxml_2.2.4-1_amd64.deb

提取内容,合并lxml本机代码和纯python代码,并将共享库移到顶部,然后删除提取内容

% dpkg-deb -x libxml2_2.7.6.dfsg-1ubuntu1.1_amd64.deb .
% dpkg-deb -x libxslt1.1_1.1.26-6build1_amd64.deb .
% dpkg-deb -x python-lxml_2.2.4-1_amd64.deb .
% mv ./usr/lib/python2.6/dist-packages/lxml .
% mv ./usr/share/pyshared/lxml/* lxml
% mv ./usr/lib .
% rm *.deb
% rm -rf usr

最后,要使用这些文件,您需要设置LD_LIBRARY_PATH和PYTHONPATH环境变量以指向$HOME/root。将它们放在您的~/.bashrc(或同等的)中,以便它们是永久的:

% export LD_LIBRARY_PATH=$HOME/root/lib
% export PYTHONPATH=$HOME/root

您可以使用ldd(如果已安装)验证是否找到共享对象:

% ldd $HOME/root/lxml/etree.so | grep $HOME
libxslt.so.1 => /home/user/root/lib/libxslt.so.1 (0x00007ff9b1f0f000)
libexslt.so.0 => /home/user/root/lib/libexslt.so.0 (0x00007ff9b1cfa000)
libxml2.so.2 => /home/user/root/lib/libxml2.so.2 (0x00007ff9b19a9000)

然后就可以测试Python了:

% python
>>> from lxml import etree
python 2022/1/1 18:16:33 有509人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶