본문 바로가기
Programming/python

눈물의 pyenv ....

by 유주원 2023. 12. 14.

맥을 arm64로 변경하고 나서부터인가.. 갑자기 pyenv intall 이 동작이 되지 않았다!!!

~/.pyenv 폴더를 지우고, brew로 pyenv를 다시 깔아 봤으나 pyenv install로 파이썬을 설치하려고 하면 아래와 같은 에러가 발생!!

 

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/machizhov/.pyenv/versions/3.8.6/lib/python3.8/curses/__init__.py", line 13, in <module>
    from _curses import *
ModuleNotFoundError: No module named '_curses'

 

분명 mac에서 python 실행 후 from _curses import *를 하면 정상적으로 import가 되는데, 왜 실행이 안된다고 하는거지??

 

일단 아래와 같은 해결 방법이 있어서 실행.

CFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix readline)/include -I$(brew --prefix ncurses)/include -I$(xcrun --show-sdk-path)/usr/include" \
LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix ncurses)/lib -L$(xcrun --show-sdk-path)/usr/lib" \
pyenv install 3.8.6

 

위의 명령을 실행했더니 아래와 같은 에러가 발생한다.

 

subprocess.CalledProcessError: Command '['/private/var/folders/kg/25ckjzxs199g6b3ccw70q_380000gn/T/python-build.20231214150729.56835/Python-3.9.1/py      thon.exe', '-c', '\nimport runpy\nimport sys\nsys.path = [\'/var/folders/kg/25ckjzxs199g6b3ccw70q_380000gn/T/tmphz4y382r/setuptools-49.2.1-py3-none-      any.whl\', \'/var/folders/kg/25ckjzxs199g6b3ccw70q_380000gn/T/tmphz4y382r/pip-20.2.3-py2.py3-none-any.whl\'] + sys.path\nsys.argv[1:] = [\'install\'      , \'--no-cache-dir\', \'--no-index\', \'--find-links\', \'/var/folders/kg/25ckjzxs199g6b3ccw70q_380000gn/T/tmphz4y382r\', \'--root\', \'/\', \'--upg      rade\', \'setuptools\', \'pip\']\nrunpy.run_module("pip", run_name="__main__", alter_sys=True)\n']' died with <Signals.SIGABRT: 6>.
10056 make: *** [install] Error 1

 

아... 모르겠다... 4시간 동안 씨름을 했는데.. 먼가가 꼬인 것 같다.

 

결국 대안으로 anaconda를 깔아서 해보기로 함.

 

anaconda 설치하러 가기

https://www.anaconda.com/download

 

Free Download | Anaconda

Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine.

www.anaconda.com

 

다운 받은 pkg를 실행해 주자. 1.4G 기가나 되네.... -_-

 

설치가 완료됐으면 터미널을 끄고 다시 접속 해준다.

아래의 명령어로 현재 설치되어 있는 가상 환경을 확인하자.

 

#> conda env list

 

현재 설치되어 있는 가상 환경 목록이 보일 것이다. 나는 처음 설치했으니 당연 아무것도 없음.

이제 프로젝트 가상환경을 만들어 준다.

 

#> conda create -n '가상환경이름' python='설치할 python버전'
ex) conda create -n test python=3.8.13

 

성공!!!!

 

이제는 옛 레거시 프로젝트를 위한 python 2.7.18을 설치해보자.

아래와 같은 에러가 발생한다. -_-

 

packagesNotFoundError: The following packages are not available from current channels:
   - python=2.7.18*

 

python 2.7은 anaconda에서 못쓰는걸까??? 열심히 구글링한 결과 아래와 같이 실행.

 

#> CONDA_SUBDIR=osx-64 conda create -n test python=2.7.18

 

CONDA_SUBDIR에 값을 지정함으로써 현재 환경을 바꿔 줄 수가 있다. 위와 같이 CONDA_SUBDIR을 osx-64로 주니깐 해당 패키지를 찾고 설치가 완료됐다!!

 

 

참고로 pycharm에서 python 2.7 환경의 인터프리터를 추가하려고 해도 아래와 같이 에러가 발생하니 터미널에서 환경을 만들어 주는 것이 좋을 것 같다.