【Python】 파이썬 주요 트러블슈팅 [01-20]
파이썬 주요 트러블슈팅 [01-20]
추천글 : 【Python】 파이썬 목차
1. ERROR: Could not find a version that satisfies the requirement cv2 (from versions: none)
ERROR: No matching distribution found for cv2
⑴ (package) 해결책 : pip install opencv-python 또는 (python3의 경우) pip3 install opencv-python
2. ModuleNotFoundError: No module named 'skimage'
⑴ (package) 해결책 : pip install scikit-image
3. AttributeError: module 'tensorflow' has no attribute 'get_default_graph'
⑴ 원인 : Python 버전과 tensorflow 버전이 안 맞음
⑵ (package) 해결책 : 새로 environment를 생성
conda create --name [MY_ENV] python=3.6
activate [MY_ENV]
pip install tensorflow==1.14.0
pip install keras==2.2.4
4. ERROR: Could not build wheels for h5py, statsmodels, which is required to install pyproject.toml-based projects
⑴ 문제 : M1 맥북에서 pip install scanpy를 하는 과정에서 위 에러가 발생
⑵ (package) 해결책 : https://www.anaconda.com/products/individual#macos에 접속하여 Anaconda 설치한 뒤 다음을 실행
conda install h5py
pip install scanpy
⑶ 참고 사이트
5. ImportError: cannot import name 'BatchNormalization' from 'keras.layers.normalization'
⑴ (package) 해결책 1. tensorflow 및 keras를 재설치할 것
① 예 1. tensorflow==1.14.0 및 keras==2.2.4으로 따로 설치하는 방법
② 예 2. tensorflow==2.8.0이었다면 tensorflow==2.4.3으로 downgrade : 이 경우 keras는 tensorflow 하부에 자연스럽게 설치
⑵ (grammar) 해결책 2. from keras.layers import BatchNormalization → from tensorflow.keras.layers import BatchNormalization (실패)
① 참고 사이트
⑶ (others) 해결책 3. tensorflow 및 keras를 재설치하여도 여전히 문제가 발생하는 경우
① 원인 분석
○ 원래는 다음과 같은 위치에서 라이브러리를 찾아야 함
C:\users\sun\anaconda3\envs\tensorflow\lib\site-packages\keras\layers\normalization
○ 그러나 위 에러가 난 경우는 다음 위치에서 라이브러리를 찾았음
C:\users\sun\appdata\local\programs\python\python39\lib\site-packages\keras\layers\normalization
② appdata 디렉토리 이하의 파일을 anaconda3 디렉토리 이하의 파일로 교체하는 방법 (성공)
③ 이때 파일을 옮긴 뒤 해당 가상환경을 활성화시키고 pip install jupyter를 해야 했음
6. AttributeError : module 'skimage.draw' has no attribute 'circle'
⑴ (package) 해결책 1. scikit-image의 버전을 downgrade하면 해결됨 (conditionally solved)
pip uninstall scikit-image
pip install scikit-image==0.18.3
① 분명 scikit-image 버전 문제가 맞으나 downgrade를 하여도 위 에러가 해결되지 않을 수 있음
⑵ (grammar) 해결책 2. skimage.draw.circle 대신 skimage.draw.ellipse를 쓰면 됨 (채택)
7. ValueError : Could not interpret optimizer identifier: <tensorflow.python.keras.optimizer_v2.adam.Adam object at 0x000001B71092D5C8>
⑴ 원인 : keras와 tensorflow.keras가 다른 패키지임에도 혼용하면서 발생하는 문제
⑵ (grammar) 해결 방법
### 수정 전 ###
model.compile(loss=squared_error, optimizer=Adam(lr=lr))
### 수정 후 ###
from keras.optimizers import adam
opt = adam(lr = lr)
model.compile(loss=squared_error, optimizer=opt)
⑶ 참고 사이트
8. ModuleNotFoundError : No module named 'jupyter_core'
⑴ (package) 해결책 : pip install jupyter
9. 액세스가 거부되었습니다.
⑴ (system) 해결책 : 주피터 노트북 및 관련 anaconda 프롬프트를 끄고 다시 해보기
10. ImportError: cannot import name '_validate_lengths' from 'numpy.lib.arraypad'
⑴ (package) 해결책 : numpy의 버전 문제로 필자의 경험상 numpy 1.16에서는 문제가 발생하고 1.15에서는 발생하지 않았음
⑵ 레퍼런스
11. ImportError: Could not find 'cudart64_100.dll'. TensorFlow requires that this DLL be installed in a directory that is named in your %PATH% environment variable. Download and install CUDA 10.0 from this URL: https://developer.nvidia.com/cuda-90-download-archive
⑴ 문제 : GPU 환경을 설치한 뒤 삭제하자 위와 같은 문제가 발생함
⑵ (others) 해결방법 : 파이썬에서 GPU 환경 재설치
12. InvalidVersionSpecError: Invalid version spec: =2.7
⑴ 문제 : anaconda3에서 conda install jupyterlab louvain ipywidgets를 할 때 이 문제가 발견
⑵ (package) 해결방법 1. 다음 코드를 실행 (실패) : https://github.com/conda/conda/issues/10618#issuecomment-826025918
%%bash
conda install --channel defaults conda python=3.6 --yes
conda update --channel defaults --all --yes
and in the next cell
!conda --version
⑶ (package) 해결방법 2. condarc config file에서 conda-forge 라인 삭제 후 패키지 / 환경 설치 시 conda-forge를 사용하지 않는 것 (실패) : https://github.com/conda/conda/issues/10618#issuecomment-827671220
conda config --remove channels conda-forge
⑷ (package) 해결방법 3. 우분투 상에서 관련 프로젝트가 진행중이었는데, 이 경우 리눅스에서와 설치 방법이 다소 다른 듯 (실패)
① 리눅스에서의 설치 방법 : https://stlearn.readthedocs.io/en/latest/installation.html
② 우분투에서의 설치 방법 : https://www.howtoinstall.me/ubuntu/18-04/python3-ipywidgets/
sudo apt update
sudo apt install python3-ipywidgets
13. AttributeError: module 'attr' has no attribute 's'
⑴ (package) 해결방법 : jupyterlab을 삭제한 뒤 다시 설치하면 됨
pip uninstall jupyterlab
pip install jupyterlab
14. Build failed with 500. If you are experiencing the build failure after installing an extension (or trying to include previously installed extension after updating JupyterLab) please check the extension repository for new installation instructions as many extensions migrated to the prebuilt extensions system which no longer requires rebuilding JupyterLab (but uses a different installation procedure, typically involving a package manager such as 'pip' or 'conda’). If you specifically intended to install a source extension, please run 'jupyter lab build' on the server for full output.
⑴ (package) 문제점 : Bokeh를 제대로 설치하지 않은 경우. jupyter lab에서 뜨는 에러
⑵ (package) 해결방법 : Bokeh 설치 메뉴얼 참고
15. * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
⑴ 개요 : 파이썬에서 plotly 코드 중 app.server.run()에서 뜨는 에러
⑵ 수정 전
if __name__ == '__main__':
app.server.run()
⑶ (others) 수정 후 : ip 주소를 개발환경과 동일하게 하면 포트를 5000번으로 알아서 지정해 줌. port 주소가 5000이 아니면 에러가 발생했음
if __name__ == '__main__':
app.server.run(host='0.0.0.0')
⑷ port를 개발환경과 동일하게 하고 실행시키면 'Address already in use' 에러가 발생
16. ImportError: cannot import name 'TypeGuard' from 'typing_extensions'
⑴ (package) 해결방법 : pip install typing-extensions --upgrade
⑵ 레퍼런스 : https://stackoverflow.com/questions/69174965/cannot-import-name-typeguard-from-typing-extensions
17. ImportError: cannot import name 'to_categorical' from 'keras.utils'
⑴ (package) 해결방법 : tensorflow==2.8.0에서 tensorflow==1.13.1, keras==2.2.4로 downgrade
18. AttributeError: 'Conv2D' object has no attribute 'outbound_nodes'
⑴ (package) 해결방법 : tensorflow==1.13.1, keras==2.2.4일 때 tensorflow== 2.4.3, keras==2.4.3으로 통일
⑵ 패키지를 수정할 때 anaconda 프롬프트에서 상충하는 패키지 버전을 리포트하는 경우가 있어서 이를 잘 조율할 것
19. ImportError: cannot import name 'get_config' from 'tensorflow.python.eager.context'
⑴ (package) 해결방법 : tensorflow==1.13.1, keras==2.2.4일 때 tensorflow==2.4.3, keras==2.4.3으로 통일
⑵ 패키지를 수정할 때 anaconda 프롬프트에서 상충하는 패키지 버전을 리포트하는 경우가 있어서 이를 잘 조율할 것
20. ERROR: Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
⑴ (package) 수정 전 : pip install cellphonedb
⑵ (package) 수정 후 : pip install --ignore-installed cellphonedb
입력: 2021.12.24 23:33