我在我的应用程序中使用openpyxl python包。使用相同时我收到以下消息。
/usr/local/lib/python2.7/dist-packages/openpyxl/的初始化的.py:31: UserWarning:已安装的lxml版本太旧而无法使用 openpyxl
warnings.warn("已安装的lxml版本太旧,无法与openpyxl一起使用")
Openpyxl需要lxml版本3.2.5或更高版本,我的机器中的版本是3.2.0。当我尝试将lxml升级到最新版本时 3.3.5,它被以下消息打断。
i686-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -D_FORTIFY_SOURCE=2 -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security build/temp.linux-i686-2.7/src/lxml/lxml.etree.o -lxslt -lexslt -lxml2 -lz -lm -o build/lib.linux-i686-2.7/lxml/etree.so
/usr/bin/ld: cannot find -lz
collect2: error: ld returned 1 exit status
error: command 'i686-linux-gnu-gcc' failed with exit status 1
----------------------------------------
Rolling back uninstall of lxml
Replacing /usr/lib/python2.7/dist-packages/lxml
Replacing /usr/lib/python2.7/dist-packages/lxml-3.2.0.egg-info
Cleaning up...
Removing temporary dir /tmp/pip_build_root...
Command /usr/bin/python -c "import setuptools;__file__='/tmp/pip_build_root/lxml/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-ov0PUy-record/install-record.txt --single-version-externally-managed failed with error code 1 in /tmp/pip_build_root/lxml
我需要帮助来解决问题。
PS: - 我已经在我的机器上安装了lxml依赖包python-dev,libxml2-dev和libxslt1-dev。
答案 0 :(得分:5)
sudo pip install --upgrade lxml
答案 1 :(得分:3)
在Ubuntu(以及其他Debian衍生产品)上,在构建某个软件之前,请确保已安装其构建依赖项。使用您的示例,运行:
sudo apt-get build-dep python-lxml
这可能需要一大堆软件包,其中一个是 zlib1g-dev ,as mentioned。
答案 2 :(得分:2)
我认为你缺少的是zlib1g-dev。
sudo apt-get install zlib1g-dev
运行上面的命令将解决问题。