BigSur(빅서)에서 pyenv를 설치하는 방법과 설치시 생긴 문제를 해결하는 방법 두가지를 올려보도록 하겠다.
터미널 창을 연 뒤 pyenv를 설치해보자
$ brew install pyenv
설치 완료 후 .bash_profile 또는 .zshrc에 설정을 추가, 쉘을 재실행 해보자.
$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
$ exec "$SHELL
python install , 필자는 3.6.5 버전을 사용하는 환경을 만들기 위해 3.6.5를 설치하였다.
$ pyenv install 3.6.5
자 여기서 문제가 발생했다.
configure: error: C compiler cannot create executables 란 에러가 발생했다.
해결을 위하여 xcode 를 먼저 설치하고 약관에 동의하라는 솔루션을 찾았다.
...
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name...
configure: error: in `/tmp/libevent-1.4.12-stable':
configure: error: C compiler cannot create executables
See `config.log' for more details.
make: *** No targets specified and no makefile found. Stop.
$ MacBookPro:~|⇒ xcode-select --install
$ xcode-select: error: command line tools are already installed, use "Software Update" to install updates
xcode는 app store에서 설치하였고 실행하여 약관에 동의 하였다.
다시 python 을 설치하자 에러메세지는 변경 되었지만 python설치가 진행 되지 않았다.
Py_FatalError 문제 발생!
Last 10 log lines:
ret = sendfile(in, out, offset, &sbytes, &sf, flags);
^
./Modules/posixmodule.c:10432:5: warning: code will never be executed [-Wunreachable-code]
Py_FatalError("abort() called from Python code didn't abort!");
^~~~~~~~~~~~~
MacBookPro:~|⇒ pyenv install 3.6.5
WARNING: Please make sure you remove any previous custom paths from your /Users/hosunglee/.pydistutils.cfg file.
python-build: use openssl from homebrew
python-build: use readline from homebrew
Downloading Python-3.6.5.tar.xz...
-> https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
Installing Python-3.6.5...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
BUILD FAILED (OS X 11.2.1 using python-build 20180424)
Inspect or clean up the working tree at /var/folders/27/m6h4g6494xsg62mylfg4rf840000gn/T/python-build.20210322175952.71593
Results logged to /var/folders/27/m6h4g6494xsg62mylfg4rf840000gn/T/python-build.20210322175952.71593.log
Last 10 log lines:
ret = sendfile(in, out, offset, &sbytes, &sf, flags);
^
./Modules/posixmodule.c:10432:5: warning: code will never be executed [-Wunreachable-code]
Py_FatalError("abort() called from Python code didn't abort!");
^~~~~~~~~~~~~
clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -I. -I./Include -I/usr/local/opt/readline/include -I/usr/local/opt/readline/include -I/usr/local/opt/openssl@1.1/include -I/Users/hosunglee/.pyenv/versions/3.6.5/include -I/usr/local/opt/readline/include -I/usr/local/opt/readline/include -I/usr/local/opt/openssl@1.1/include -I/Users/hosunglee/.pyenv/versions/3.6.5/include -DPy_BUILD_CORE -c ./Modules/_sre.c -o Modules/_sre.o
1 warning and 1 error generated.
make: *** [Modules/posixmodule.o] Error 1
make: *** Waiting for unfinished jobs....
1 warning generated.
이 후 여러 방법을 진행해보았다. 미리 말하는데 해당 2가지 방법으로는 문제를 해결하지 못했다.
맨 밑에 부터 해본 뒤 안되면 두가지를 설치 후 다시 진행 해보는것이 좋을 것 같다.
1. zlib 설치 (후순위)
$ brew install zlib
$ export LDFLAGS="-L/usr/local/opt/zlib/lib"
$ export CPPFLAGS="-I/usr/local/opt/zlib/include
2. readline xz 설치 (후순위)
$ brew install readline xz
하지만 해결 되지 않았고 다음 방법으로 해결되었다.
해결 방안 - 다음 명령어로 설치 (우선순위)
필자는 중간 부분에 python 버전을 3.6.5 로 설정하였다.
이글을 읽는 사용자가 다른 버전을 원한다면 해당 부분을 변경하면 될 것이다.
$ CFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(xcrun --show-sdk-path)/usr/include" LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib" pyenv install --patch 3.6.5 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch\?full_index\=1)
$ CFLAGS="-I$(brew --prefix openssl)/include -I$(brew --prefix bzip2)/include -I$(brew --prefix readline)/include -I$(xcrun --show-sdk-path)/usr/include" LDFLAGS="-L$(brew --prefix openssl)/lib -L$(brew --prefix readline)/lib -L$(brew --prefix zlib)/lib -L$(brew --prefix bzip2)/lib" pyenv install --patch 3.6.5 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch\?full_index\=1)
깔끔하게 설치 되었다.
pyenv 의 python global 버전을 3.6.5로 맞춰 준 뒤 pyenv versions를 확인해보자!
MacBookPro:~|⇒ pyenv global 3.6.5
MacBookPro:~|⇒ pyenv versions
system
* 3.6.5 (set by /Users/hosunglee/.pyenv/version)
짜잔 잘 된당 잘 된당!
'Python' 카테고리의 다른 글
vs code 와 docker를 사용한 컨테이너 개발 환경(Python) 구축 (0) | 2021.04.26 |
---|---|
Docker로 python flask server 실행하기 (0) | 2021.04.22 |
파이썬(python) datetime으로 몇일, 몇주 뒤 날짜 구하기 (0) | 2021.02.15 |
파이썬의 자료형 - 숫자형 활용하기 (사칙연산) (0) | 2020.09.03 |
파이썬(python)의 자료형 (0) | 2020.09.01 |