지난번에 이어서 부스트클래스 가상환경을 세팅을 진행하였다. 이것만 해두면 뒤로 문제없겠지! 하면서.
1. 설치를 하려는데 python 3.8.5 ===> 3.8.19 로 업그레이드 해야 한다고 뜸.
이 버전들이 요구사항이었는데 이 요구 사항 모두 3.8.5로는 만족하지 못하는 친구들이었던 것이다.
conda install notebook
conda install pandas==1.1.5
conda install numpy==1.19.5
conda install matplotlib==3.1.3
2. (어쩔수 없이) python 업그레이드
판다스 해당 버전을 깔며 어쩔 수 없이 python을 업그레이드하도록 두었다.
따라서 나의 python 버전은 3.8.19가 되었다.
(py3_8_5) 내것@내것-MacBook-Pro ~ % conda install pandas==1.1.5
Retrieving notices: ...working... done
Channels:
- defaults
Platform: osx-64
Collecting package metadata (repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /Users/Angela/opt/anaconda3/envs/py3_8_5
added / updated specs:
- pandas==1.1.5
The following packages will be downloaded:
package | build
---------------------------|-----------------
blas-1.0 | mkl 6 KB
intel-openmp-2021.4.0 | hecd8cb5_3538 961 KB
mkl-2021.4.0 | hecd8cb5_637 101.0 MB
mkl-service-2.4.0 | py38h9ed2024_0 45 KB
mkl_fft-1.3.1 | py38h4ab4a9b_0 165 KB
mkl_random-1.2.2 | py38hb2f4e1b_0 273 KB
numpy-1.24.3 | py38he696674_0 12 KB
numpy-base-1.24.3 | py38h9cd3388_0 6.5 MB
pandas-1.1.5 | py38hb2f4e1b_0 8.0 MB
pytz-2024.1 | py38hecd8cb5_0 217 KB
------------------------------------------------------------
Total: 117.1 MB
The following NEW packages will be INSTALLED:
blas pkgs/main/osx-64::blas-1.0-mkl
intel-openmp pkgs/main/osx-64::intel-openmp-2021.4.0-hecd8cb5_3538
mkl pkgs/main/osx-64::mkl-2021.4.0-hecd8cb5_637
mkl-service pkgs/main/osx-64::mkl-service-2.4.0-py38h9ed2024_0
mkl_fft pkgs/main/osx-64::mkl_fft-1.3.1-py38h4ab4a9b_0
mkl_random pkgs/main/osx-64::mkl_random-1.2.2-py38hb2f4e1b_0
numpy pkgs/main/osx-64::numpy-1.24.3-py38he696674_0
numpy-base pkgs/main/osx-64::numpy-base-1.24.3-py38h9cd3388_0
pandas pkgs/main/osx-64::pandas-1.1.5-py38hb2f4e1b_0
python-dateutil pkgs/main/noarch::python-dateutil-2.8.2-pyhd3eb1b0_0
pytz pkgs/main/osx-64::pytz-2024.1-py38hecd8cb5_0
six pkgs/main/noarch::six-1.16.0-pyhd3eb1b0_1
The following packages will be UPDATED:
libffi 3.3-hb1e8313_2 --> 3.4.4-hecd8cb5_1
openssl 1.1.1w-hca72f7f_0 --> 3.0.13-hca72f7f_1
python 3.8.5-h26836e1_1 --> 3.8.19-h5ee71fb_0
Proceed ([y]/n)? y
3. pandas, numpy, matplotlib 순서로 설치
여기까지는 순조로웠다.
4. optuna 설치 중 문제 발생 : `PackagesNotFoundError: The following packages are not available from current channels:`
다음과 같은 오류가 떴다.
Channels:
- defaults
Platform: osx-64
Collecting package metadata (repodata.json): done
Solving environment: failed
PackagesNotFoundError: The following packages are not available from current channels:
- optuna
Current channels:
- defaults
To search for alternate channels that may provide the conda package you're
looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
따라서 일단 넘긴 후 다른 패키지를 먼저 설치했다.
5. notebook, sckitlearn, xgboost 성공적으로 설치
6. catboost 설치에서 optuna 설치 시 출현했던 문제가 다시 발생!
이번에는 이런 식으로 떴다. 끝의 패키지 이름만 달라진 채 같은 문제가 발생한 것이다.
PackagesNotFoundError: The following packages are not available from current channels:
- catboost==0.24.4
그래서 찾아보니 conda는 Anaconda의 공식 채널에서 패키지를 찾지만 못 찾을 때 이러한 문제가 발생하는 것이었다.
따라서 이렇게 패키지를 설치하는 방식으로 설치할 수 있다고 했다.
(참조 블로그: [PYTHON] Conda Install 시 발생하는 PackagesNotFoundError 해결 방법)
conda install -c conda-forge [패키지이름]
정말 감사하게도 이 명령어로 catboost가 성공적으로 설치가 되었고, 마찬가지로 optuna도 잘 설치할 수 있었다.
7. tqdm 설치
8. 주피터 노트북을 켰는데 글쎄...
아니 주피터노트북을 실행하라는 명령어를 내렸더니 좀 처럼 명령이 진행이 안되더니 이딴(!) 오류가 뱉어졌다.
Traceback (most recent call last):
File "/Users/Angela/opt/anaconda3/envs/py3_8_5/lib/python3.8/site-packages/requests/compat.py", line 11, in <module>
import chardet
ModuleNotFoundError: No module named 'chardet'
아니또 당신은 누구시길래 안되실까요.
그래서 jupyter를 conda install로 쳐보기로 했다. (이제 막나감) 뭔가 빠진게 있을 수도 있다는 생각이었다.
9. jupyter 설치 - 성공적 그러나...
jupyter를 설치하고 jupyter notebook 명령어를 쳤으나 같은 `chardet`가 없다는 오류가 떴다.
따라서 `pip freeze` 로 버전을 확인해보려고 했는데, `chardet`이 정말 없었다.
10. 그래서 chardet이 누군데?
https://pypi.org/project/chardet/
python에 포함된 universl encoding detector라고 한다. char-에서도 이미 짐작이 갔지만 문자열과 관련한 패키지였던 것이다.
그래서 release history를 보니 가장 최근 release가 5.2.0으로 2023-08-02였다. python 3.8의 end of full support는 2021-05-03(참조위키)이고 chardet의 버전 release는 5.0.0이 Jun 25, 2022 이고, 4.0.0이 Dec 11, 2020이므로 가장 최근 말고 5.0.0정도 설치하면 되겠다는 생각을 했다. 또 문제 생기면 업데이트 하면 되는것이고! (헉 진짜 막나가네)
11. `pip install chardet==5.0.0`
이걸 해서 되는 사람이 있고 안되는 사람이 있는 것으로 보였다. 원인은 정확히 알수 없었고, 심지어 cchardet이 없다고 뜨는 사람도 있었다고 한다.
마음에 걸렸던 건 위의 패키지들은 전부 `conda install`로 했는데 이 아이를 pip install로 하기가 걸렸던 것이다.
하지만 어떡해! 해야지. 쳐보니 의외로 간단하게 설치가 끝났다.
12. 그래서 됐냐구요? 아니요...
다음처럼 jupyter notebook이 정상적으로 되는 것처럼 보이나 싶더만 아주 잠깐의 희망고문을 해버리고는
http://localhost:8888/tree 에서 아무것도 뜨지 않았습니다. 정말 아무것도요.
심지어 종료할 때에는 진행중인 프로세스가 있다며 jupyter notebook이 잘되는 척을 하는데...! 정말 속상하다 속상해...
어딘가 꼬인게 분명합니다. 어쩐지 다 지우고 새로 설치한건데 base에서 jupyer notebook했을 때 이전 nbextension 설정이랑 theme까지 그대로 오는게 수상하긴 했어.
마무리
결국 며칠을 공을 들인 가상환경을 사용할 수 없게 되었다.
어쩔 수 없이 catboost도 base에 깔고 base에서 jupyter notebook을 하기로 했다. 이마저도 catboost==0.24.4 버전은 3.10미만의 python에서 할 수 있다고 하니, catboost도 지금의 python에 맞게 설치하고 후에 받는 코드에 대해서 문제는 그때 해결하려고 한다.
catboost는 1.2.3 버전이 되었다.
기나긴 여정이었다. 며칠 이것에 매달려있었지만 빠르게 해결하려고 하는 마음 때문인지 느긋하게 searching할 수 없었고, 또 이것저것 해볼 수 있는 시간이 있는 것도 아니었다. 역시 전문가가 필요한 이유는 있는 것이다.
'Python3 > troubles' 카테고리의 다른 글
가상환경 설정 과정 좌충우돌 일기1 (0) | 2024.05.04 |
---|