【Python】 파이썬 주요 트러블슈팅 [61-80]
파이썬 주요 트러블슈팅 [61-80]
추천글 : 【Python】 파이썬 목차
61. ImportError: libGL.so.1: cannot open shared object file: No such file or directory
⑴ (package) 문제 상황 : import cv2를 할 때 문제가 발생함
⑵ (package) 해결방법 1. Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y libgl1-mesa-glx
pip uninstall opencv-python
pip install opencv-python
⑶ (package) 해결방법 2. CentOS/Fedora
sudo yum update
sudo yum install -y mesa-libGL
pip uninstall opencv-python
pip install opencv-python
62. AttributeError: module 'keras.optimizers' has no attribute 'Adam'
⑴ (grammar) 해결 방법 : 문제가 되는 함수에 다음 코드를 삽입
import tensorflow as tf
tf.compat.v1.disable_eager_execution()
experimental_run_tf_function=False
⑵ (grammar) 주의사항 : optimizers.Adam이 아니라 optimizers.adam으로 쓰여 있는 코드도 있는데, 이 경우 환경에 따라 오류를 일으킬 때도 있고 아닐 때도 있음을 유의
63. ImportError: cannot import name '__author__' from 'scanpy._metadata' (/opt/conda/lib/python3.8/site-packages/scanpy/_metadata.py)
⑴ (package) 해결 방법 : 아무 패키지도 설치하지 않은 맨 처음에 scanpy==1.9.0을 설치
⑵ Kubeflow 특유의 문제로 여겨짐
64. Error reading image file /home/jovyan/_janus/microbiome/Region1_colon_d0_rotated.tif while estimating memory requirements: TIFF has unsupported color type - must be 8-bit per component RGB or 8/16-bit gray
⑴ (grammar) 문제점 : Region1_colon_d0_rotated.tif의 파일이 높은 depth의 .tif 파일인 게 문제가 됨
⑵ (grammar) 해결 방법 : https://online-image-converter.com/에서 8-bit .tiff 파일로 변환
65. java.lang.IllegalArgumentException: Unsupported class file major version 55
⑴ (package) 해결 방법 : 리눅스 상에서 java 버전을 upgrade 혹은 downgrade (ref)
66. AttributeError: module 'polars' has no attribute 'toggle_string_cache'
⑴ (package) 문제 상황 : cnv.io.genomic_position_from_gtf('./gencode.v19.annotation.gtf.gz',adata = adata)에서 에러 발생
⑵ (package) 해결 방법 : pip install polars==0.16.1과 같이 polars 버전을 0.17 미만으로 변경 (ref)
Incompatible with polars version >=0.17 due to usage of polars.toggle_string_cache
67. ModuleNotFoundError: No module named 'ot'
⑴ (package) 해결 방법 : pip install POT
68. AttributeError: module 'scvi' has no attribute 'model'
⑴ (package) 해결 방법 : pip install scvi-tools
69. JVMNotFoundException: No JVM shared library file (libjvm.so) found. Try setting up the JAVA_HOME environment variable properly.
⑴ (package) 해결 방법 1. sudo apt install default-jre
⑵ (package) 해결 방법 2. sudo apt install openjdk-8-jre-headless
⑶ (package) 해결 방법 3. sudo apt install openjdk-11-jre-headless
⑷ (package) 해결 방법 4. sudo apt install openjdk-13-jre-headless
⑸ (package) 해결 방법 5. sudo apt install openjdk-16-jre-headless
⑹ (package) 해결 방법 6. sudo apt install openjdk-17-jre-headless
⑺ (package) 해결 방법 7. 수동 설치
① Official Oracle website에서 Java 설치 : wget 이용
② export JAVA_HOME=/path/to/java/jdk
③ export PATH=$PATH:$JAVA_HOME/bin
④ echo $JAVA_HOME # verification
⑤ java -version # verification
⑥ restart and re-run
70. ValueError: all the input array dimensions except for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 316 and the array at index 1 has size 1
⑴ (grammar) 문제상황 : 상관계수를 구하는 두 인자들이 동일한 shape를 가져야 하는데 그렇지 않은 경우 에러가 호출됨
⑵ (grammar) 해결방법 : 일반적으로 두 인자를 .flatten()으로 처리하여 1차원으로 만든 뒤 상관계수를 구하면 해결됨. 그러나 그 중 하나가 Matrix 형인 경우 .flatten을 해도 flatten 되지 않으므로, 이 경우 np.array로 변경한 다음에 상관계수를 구하여야 함
from scipy.stats import spearmanr
bulk_like_merged_adata_1 = np.sum(merged_adata_1_common.X, axis=0)
bulk_like_merged_adata_1 = np.array(bulk_like_merged_adata_1)
bulk_like_merged_adata_1 = bulk_like_merged_adata_1[0]
bulk_expression = np.sum(adata_common.X, axis=0)
bulk_expression = np.array(bulk_expression)
bulk_expression = bulk_expression[0]
# Calculate the Spearman correlation
corr, _ = spearmanr(bulk_like_merged_adata_1, bulk_expression_vector)
71. scanpy.pl.spatial의 font size가 변경되지 않는 경우
⑴ (grammar) 문제상황 : plt.rc('font', size = 10)과 같이 하면 scanpy plot도 일괄 폰트 변경되는데 그렇지 않은 경우가 있음
⑵ (grammar) 해결방법 : 다음 코드가 있으면 지우기 (plt와 scanpy 셋팅이 충돌함)
sc.set_figure_params(scanpy=True, fontsize=14)
sc.set_figure_params(facecolor="white", figsize=(8, 8))
sc.settings.verbosity = 3
# verbosity: errors (0), warnings (1), info (2), hints (3)
72. ImportError: cannot import name 'url_decode_stream' from 'werkzeug.urls'
⑴ (package) 해결방법 (ref)
# My original requirements.txt
bcrypt==4.0.1
blinker==1.6.2
click==8.1.7
dnspython==2.4.2
email-validator==2.0.0.post2
Flask==3.0.0
Flask-Bcrypt==1.0.1
Flask-Login==0.6.2
Flask-SQLAlchemy==3.1.1
Flask-WTF==1.2.0
greenlet==2.0.2
idna==3.4
itsdangerous==2.1.2
Jinja2==3.1.2
MarkupSafe==2.1.3
SQLAlchemy==2.0.21
typing_extensions==4.8.0
Werkzeug==3.0.0
WTForms==3.0.1
# My modified requirements.txt
bcrypt==4.0.1
blinker==1.6.2
click==8.1.7
dnspython==2.4.2
email-validator==2.0.0.post2
Flask==2.3.0
Flask-Bcrypt==1.0.1
Flask-Login==0.6.2
Flask-SQLAlchemy==3.1.1
Flask-WTF==1.2.1
greenlet==2.0.2
idna==3.4
itsdangerous==2.1.2
Jinja2==3.1.2
MarkupSafe==2.1.3
SQLAlchemy==2.0.21
typing_extensions==4.8.0
Werkzeug==2.3.0
WTForms==3.0.1
73. TypeError: 'module' object is not callable
⑴ (grammar) 해결 방법
# before
import glob
mouse_tissue_files = glob("./data/droplet/*")
# after
import glob
# Correctly use glob to list files matching the pattern
mouse_tissue_files = glob.glob("./data/droplet/*")
74. error: urllib3 2.2.1 is installed but urllib3<1.27,>=1.25.4 is required by {'botocore'}
⑴ (package) 해결 방법 (ref)
pip install urllib3==1.25.11
75. UFuncTypeError: ufunc 'add' did not contain a loop with signature matching types (dtype('<U32'), dtype('<U32')) -> dtype('<U32')
⑴ (grammar) 원인 : Space Ranger가 업데이트 됨에 따라 tissue_positions_list.csv 대신 tissue_positions.csv가 생성되고, 부적절한 헤더가 생겨서 (아래 참고), 아직 이를 반영하지 않은 채 scanpy.read_visium를 한 AnnData를 scanpy.pl.spatial로 볼 때 에러가 생김
# tissue_positions_list.csv (Previous)
ACGCCTGACACGCGCT-1,1,0,0,256,1780
TACCGATCCAACACTT-1,1,1,1,268,1760
...
# tissue_positions.csv (Newest)
barcode,in_tissue,array_row,array_col,pxl_row_in_fullres,pxl_col_in_fullres
ACGCCTGACACGCGCT-1,1,0,0,256,1780
TACCGATCCAACACTT-1,1,1,1,268,1760
⑵ (grammar) 해결방법 : tissue_positions.csv를 tissue_positions_list.csv로 이름을 바꾸고, 예전 버전처럼 헤더를 지워주어야 함
76. ImportError: cannot import name 'optim' from 'flax'
⑴ (package) 해결 방법 (ref)
pip uninstall flax
pip install flax==0.5.3
77. OSError: Unable to open file: base_htrans.gin. Searched config paths: ['', 'third_party/py/meliad/transformer/ configs’].
⑴ (grammar) ./meliad_lib/meliad/transformer/configs/base_htrans.gin 파일을 위 path 중 하나로 옮기기 (ref)
78. ModuleNotFoundError: No module named 'gin'
⑴ (package) 해결 방법 : pip install gin-config (ref)
79. ImportError: Cannot load backend 'TkAgg' which requires the 'tk' interactive framework, as 'headless' is currently running
⑴ (grammar) 해결방법 1. import matplotlib → matplotlib.use('TKAgg') → import matplotlib.pyplot as plt (ref)
⑵ (grammar) 해결방법 2. 필자의 경우 environment를 지우고 다시 깔아서 실행할 때도 있음
80. OSError: cannot open resource
⑴ (grammar) 문제 상황 : custom font를 지정하는 경우 폰트 파일의 위치를 조회하지 못해 문제가 발생
⑵ (grammar) 해결 방법 (ref) : 다음과 같이 다른 대체 폰트를 사용
import os
import cv2
font_path = os.path.join(cv2.__path__[0],'qt','fonts','DejaVuSans.ttf')
font = ImageFont.truetype(font_path, size=128)
입력: 2023.08.17 14:29
수정: 2024.05.05 22:00