본문 바로가기

Contact English

【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) 해결방법 : 다음 코드가 있으면 지우기 (pltscanpy 셋팅이 충돌함)

 

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.csvtissue_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 중 하나로 옮기기

(grammar) 레퍼런스 

 

입력: 2023.08.17 14:29

수정: 2024.05.05 22:00