如何解决由于pycairo 1.20
我在为我的python3脚本导入matplotlibrary时遇到问题。
我的系统: CentOS Linux 7(核心) 内核3.10.0-1062.9.1.el7.x86_64 Python 3.6.8
最少繁殖:
设置:
python3 -m venv tester
source tester/bin/activate
pip install matplotlib
pip list
礼物:
Package Version
--------------- ---------
certifi 2020.6.20
cycler 0.10.0
kiwisolver 1.2.0
matplotlib 3.3.2
numpy 1.19.2
Pillow 8.0.1
pip 18.1
pyparsing 2.4.7
python-dateutil 2.8.1
setuptools 40.6.2
six 1.15.0
现在可以实际复制了:
python3
>>>from matplotlib import pyplot as plt
礼物:
Traceback (most recent call last):
File "/gpfs/apps/shared/mpo/tester/lib/python3.6/site-packages/matplotlib/backends/backend_cairo.py",line 15,in <module>
import cairo
ModuleNotFoundError: No module named 'cairo'
During handling of the above exception,another exception occurred:
Traceback (most recent call last):
File "/gpfs/apps/shared/mpo/tester/lib/python3.6/site-packages/matplotlib/backends/backend_cairo.py",line 21,in <module>
import cairocffi as cairo
ModuleNotFoundError: No module named 'cairocffi'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "<stdin>",line 1,in <module>
File "/gpfs/apps/shared/mpo/tester/lib/python3.6/site-packages/matplotlib/pyplot.py",line 2336,in <module>
switch_backend(rcParams["backend"])
File "/gpfs/apps/shared/mpo/tester/lib/python3.6/site-packages/matplotlib/pyplot.py",line 276,in switch_backend
class backend_mod(matplotlib.backend_bases._Backend):
File "/gpfs/apps/shared/mpo/tester/lib/python3.6/site-packages/matplotlib/pyplot.py",line 277,in backend_mod
locals().update(vars(importlib.import_module(backend_name)))
File "/apps/shared/taifun/x86_64/apps/DATAPROCESSING/python/3.6.8/system/lib/python3.6/importlib/__init__.py",line 126,in import_module
return _bootstrap._gcd_import(name[level:],package,level)
File "/gpfs/apps/shared/mpo/tester/lib/python3.6/site-packages/matplotlib/backends/backend_cairo.py",line 25,in <module>
"is installed") from err
ImportError: cairo backend requires that pycairo>=1.11.0 or cairocffiis installed
好,所以我们安装pycairo:
pip install pycairo
礼物:
Collecting pycairo
Downloading <internal-package-server>/5a10cb7f9ae0d/pycairo-1.20.0.tar.gz (344kB)
100% |████████████████████████████████| 348kB 3.7MB/s
Installing build dependencies ... done
Installing collected packages: pycairo
Running setup.py install for pycairo ... done
Successfully installed pycairo-1.20.0
让我们检查一下:
pip list
似乎还可以:
Package Version
--------------- ---------
...
pycairo 1.20.0
...
新尝试:
python3
>>>from matplotlib import pyplot as plt
不,同样的错误:
...
ImportError: cairo backend requires that pycairo>=1.11.0 or cairocffiis installed
现在,将版本修改为1.11即可:
pip uninstall pycairo
pip install pycairo==1.11
python3
>>> from matplotlib import pyplot as plt
>>>
万岁!
但是为什么pycairo 1.20在这里不起作用? 1.11-> 1.20不应是一个重大更改,其他人应该早些时候通知此问题。我可能会缺少什么?还是我应该在matplotlib上实际打开票证,以便他们调整其要求。清单?
谢谢。
解决方法
好的,我设法解决了这个问题。必须执行几个步骤:
- 从pycairo切换到cairocffi(如CForce99建议)
- 更新pip和setuptools(通过输入gitlab-cy.yml),旧版本(40.x)出现了cairocff的.tar.gz问题
- 设置公司内部pypi镜像的证书的路径(导出REQUEST_CA_BUNDLE)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。