因为Anaconda3的python环境在pyinstaller打包的时候,会把整个数学运算库打包进来,使整个程序体积达到300M以上,在分析程序运行时加载的动态链接库时,发现这些库在运行过程中都没有使用,虽然可以手动删除这些库,但是每次打包好了都要手动删除未免过于繁琐,所以打算把python切换一下,由于电脑里面之前已经安装了python3.8,所以只需要吧Anaconda3的环境取消激活就可以了。
但是项目中所用到的一些包,都要重新安装一遍了。其中就包括python-docx这个模块,在安装的过程中报了Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?
这个错误。百度了一下,是缺少lxml引起的,需要到https://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml
下载你所安装python版本的对应whl包,由于我的python是windows下的64位版本,于是我就下载了lxml‑4.5.2‑cp38‑cp38‑win_amd64.whl
。
下载完成后,只需cd到该whl包的路径上,执行pip install lxml‑4.5.2‑cp38‑cp38‑win_amd64.whl
就可以了。但是在安装的过程中却又出了点状况,提示lxml-4.5.2-cp38-cp38-win32.whl is not a supported wheel on this platform.
,百度发现是包名有问题,在python控制台中输入import pip._internal; print(pip._internal.pep425tags.get_supported())
可以看到
[('cp38', 'cp38m', 'win_amd64'), ('cp38', 'none', 'win_amd64'), ('py3', 'none', 'win_amd64'), ('cp38', 'none', 'any'), ('cp3', 'none', 'any'), ('py38', 'none', 'any'), ('py3', 'none', 'any'), ('py37', 'none',
'any'), ('py36', 'none', 'any'), ('py35', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]
按照第一个参数可知,将文件名修改为lxml‑4.5.2‑cp38‑cp38m‑win_amd64.whl
即可
修改后,在该包对应的路径中执行pip install lxml‑4.5.2‑cp38‑cp38m‑win_amd64.whl
可以看到
(newvenv) E:\checkDuplicate>pip install lxml-4.5.2-cp38-cp38m-win_amd64.whl
Processing e:\checkduplicate\lxml-4.5.2-cp38-cp38m-win_amd64.whl
Installing collected packages: lxml
Successfully installed lxml-4.5.2
安装成功。