我刚刚在我的电脑上安装了 Debian 7.4 。我的内部发展需要 python 3.3.2 或更高版本和python3-lxml。因为python 3.2是debian中的python3.x系列的基线,所以我已经编译了3.4.0 python版本并卸载了旧的3.2。 (请注意,该过程还卸载了一些gnome依赖项)。
在完成这项工作之后,Python3软件包(例如,cherrypy)安装正常,并且可以在解释器中成功导入模块。
当尝试安装python3-lxml时,系统需要安装lxml存储库依赖项python3.2 ......我只是不想这样做。
所以我决定在python 3.4.0上编译lxml。
安装的依赖项: * libxml2> = 2.7.8 * libxml2-dev * libxslt1 => = 1.1.26 * libxslt1-dev
sudo apt-get install libxml2 libxml2-dev libxslt1 libxslt1-dev
我认为只需要* -dev包,不是吗?
问题是我在源目录中编译时遇到了这个问题:
jeby6372@mercure:~/Pack/lxml-3.3.4$ sudo python3 setup.py build
Building lxml version 3.3.4.
Building without Cython.
Using build configuration of libxslt 1.1.26
Building against libxml2/libxslt in the following directory: /usr/lib
/opt/python-3.4.0/lib/python3.4/distutils/dist.py:260: UserWarning: Unknown distribution option: 'bugtrack_url'
warnings.warn(msg)
running build
running build_py
copying src/lxml/includes/lxml-version.h -> build/lib.linux-x86_64-3.4/lxml/includes
running build_ext
building 'lxml.etree' extension
gcc -pthread -Wno-unused-result -Werror=declaration-after-statement -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/include/libxml2 -I/home/jeby6372/Pack/lxml-3.3.4/src/lxml/includes -I/opt/python-3.4.0/include/python3.4m -c src/lxml/lxml.etree.c -o build/temp.linux-x86_64-3.4/src/lxml/lxml.etree.o -w
gcc -pthread -shared build/temp.linux-x86_64-3.4/src/lxml/lxml.etree.o -L/usr/lib -lxslt -lexslt -lxml2 -lz -lm -o build/lib.linux-x86_64-3.4/lxml/etree.cpython-34m.so
/usr/bin/ld: cannot find -lz
collect2: error: ld returned 1 exit status
error: command 'gcc' failed with exit status 1
gcc无法识别-lz选项。有关信息,我安装了工具链:
sudo apt-get install build-essential
有什么想法吗?
提前感谢您的帮助。
答案 0 :(得分:2)
在尝试编译python c-extension时,链接器无法找到libz
。我相信你需要Debian上的zlib开发包。尝试apt-get install zlib1g-dev
,然后尝试重建。
答案 1 :(得分:0)
你是光电影,
在安装另一个软件包(setuptools)时,它声称必须在编译时设置zlib python模块。不是现在为什么,但我认为这是一个类似的问题,因为未知的-lz选项听起来像 Library Zlib ?
所以我安装了zlib1g librairy及其源代码,再次使用 - with-zlib 选项编译python-3.4.0。
./compile --prefix=opt/python-3.4.0 --with-zlib
make
sudo make install
然后创建命令的新链接
sudo rm /usr/bin/python3 && ln -s /usr/bin/python3 /opt/python-3.4.0/bin/python3.4m
之后,安装在lxml源目录
中成功结束sudo python3 setup.py install
再次感谢您的回答