如何解决创建使用lxml的分布式程序包
我创建了一个使用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。
如果像我一样使用窗户,这里有非官方的轮子:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。