
다음 파이썬 코드를 실행하면,
import numpy as np
import matplotlib.pyplot as plt
a = np.arange(3)
plt.pyplot(a, a)
plt.show
기계 인쇄:
[test001@login01 ~]$ python3 draw.py
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-test001'
python3: symbol lookup error: /beegfs/home/test001/.local/lib/python3.11/site-packages/PyQt5/Qt5/plugins/platforms/..//lib/libQt5XcbQpa.so.5: undefined symbol: FT_Get_Font_Format
나는의 방법을 시도했다Qt 시작 오류: 기호 조회 오류: libQt5XcbQpa.so.5: 정의되지 않은 기호: FT_Get_Font_Format, 하지만 작동하지 않습니다. 내가 사용할 때
[test001@login01 ~]$ readelf -s /lib64/libfreetype.so.6 | grep -i font_format
406: 0000000000020960 43 FUNC GLOBAL DEFAULT 11 FT_Get_X11_Font_Format
freetype-2.8, 2.10, 2.12도 테스트되었으며 출력은 동일하며 FT_Get_Font_Format을 찾을 수 없습니다.
이 경우 어떻게 해야 합니까?
Centos version: CentOS Linux release 7.5.1804 (Core)
Qt5 version: 5.15.2
PyQt5 version: 5.15.9
답변1
귀하의 PyQt는 FreeType 기능을 사용합니다FT_Get_Font_Format. 이것은 좋다.
그러나 freetype lib libfreetype.so.6은 다음과 같은 기능만 제공합니다.FT_Get_X11_Font_Format. 이 기능은 더 이상 사용되지 않으므로 이는 좋지 않습니다.
내 시스템을 확인했는데 최신 FT_Get_Font_Format 기능을 제공하는 동일한 파일 libfreetype.so.6이 있습니다. 저는 프리타입 6.17.4를 사용하고 있습니다.
따라서 다음과 같은 자유형 버전이 있어야 합니다.
6 <= version < 6.17.4
OS에 모든 업데이트를 설치합니다. OS가 최신 freetype lib를 제공하지 않는 경우 간단히 matplotlib를 다운그레이드하세요.
현재 matplotlib를 제거하려면 다음을 실행하세요.
pip uninstall matplotlib
사용 가능한 모든 matplotlib 버전을 나열하려면 다음을 실행하세요.
pip index versions matplotlib
matplotlib의 특정 버전을 설치하려면 다음을 실행하세요.
pip install matplotlib==3.6.2
3.6.2부터 시작해도 작동하지 않으면 제거하고 한 버전을 3.6.1로 낮추세요. 스크립트가 제대로 실행될 때까지 이 작업을 수행하세요.
답변2
실제로 그 이유는 의 freetype이 freetype-2.8
완전히 freetype-2.10
컴파일되지 않았기 때문입니다. 버전은 아직 freetype-2.4
에서 제공하는 것을 사용하고 있습니다 yum install freetype
.
다음 링크를 사용하면 해당 FT_GET_Font_Format
기능을 찾을 수 있습니다.
export LD_LIBRARY_PATH=/usr/lib/zlib/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/lib/libpng/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=software/freetype/lib:$LD_LIBRARY_PATH