问题描述
我创建了一个使用lxml
的python包。
在setup.py中,我定义了:
packages=find_packages(),# required
python_requires='>=3.8,<4',install_requires=[
'typer[all]','packaging','lxml'
]
测试,打包和部署工作正常。
但是,将程序包上传到我公司的PyPi信息库后,我尝试使用以下方法安装程序包:
pip install -i <mypypirepo> <mypackage>
Fatal error C1083: Cannot open include file: 'libxml/xpath.h': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' Failed with exit code 2
*********************************************************************************
Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?
*********************************************************************************
----------------------------------------
ERROR: Command errored out with exit status 1: 'c:\python39\python.exe'
在尝试手动安装lxml
时,我得到了相同的确切错误。
我在stackoverflow上找到了解决方案,这些解决方案涉及手动下载兼容的wheel
版本的lxml
,然后使用pip
安装它。
但是,lxml
是程序包的一部分,最终用户应易于安装。
有什么方法可以解决这个问题,而不必强迫用户手动安装lxml
?
注意:此问题仅在将python从3.8升级到3.9之后才开始发生。
解决方法
截至2020年10月12日,PyPI上没有适用于python 3.9的lxml wheel。
如果像我一样使用窗户,这里有非官方的轮子: