Install python 3.8.0 via pyenv on BigSur
Install python 3.8.0 via pyenv on BigSur(macOS 11.0)
I’m using macOS11(beta), BigSur. I think BigSur is cool but, I have faced many issues that I haven’t had before.
- Crash so many times
- Cannot install some software as well as macOS 10
In this article, I will show you how I could install python via pyenv on BigSur.
The following was the issue I had.
$ pyenv install 3.7.6 python-build: use firstname.lastname@example.org from homebrew python-build: use readline from homebrew Downloading Python-3.7.6.tar.xz... -> https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tar.xz Installing Python-3.7.6... python-build: use readline from homebrew python-build: use zlib from xcode sdk BUILD FAILED (OS X 11.0 using python-build 20180424) Inspect or clean up the working tree at /var/folders/gj/x6v5vwdx1v7741fdfcxwmr100000gn/T/python-build.20200830033458.15319 Results logged to /var/folders/gj/x6v5vwdx1v7741fdfcxwmr100000gn/T/python-build.20200830033458.15319.log Last 10 log lines: struct sf_hdtr sf; ^ ./Modules/posixmodule.c:8401:15: error: implicit declaration of function 'sendfile' is invalid in C99 [-Werror,-Wimplicit-function-declaration] ret = sendfile(in, out, offset, &sbytes, &sf, flags); ^ clang -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -I/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include -I/Applications/Xcode-beta.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 -Wstrict-prototypes -Werror=implicit-function-declaration -I. -I./Include -I/usr/local/opt/readline/include -I/usr/local/opt/readline/include -I/Users/koji/.pyenv/versions/3.7.6/include -I/usr/local/opt/readline/include -I/usr/local/opt/readline/include -I/Users/koji/.pyenv/versions/3.7.6/include -c ./Modules/pwdmodule.c -o Modules/pwdmodule.o 2 errors generated. make: *** [Modules/posixmodule.o] Error 1 make: *** Waiting for unfinished jobs.... 1 warning generated.</span>
According to the wiki on GitHub, basically this issue will be solved by installing zlib.
So, I installed zlib via Homebrew
$ brew install zlib $ export LDFLAGS="-L/usr/local/opt/zlib/lib" $ export CPPFLAGS="-I/usr/local/opt/zlib/include</span>
However, I got the same error again… I did some research on this issue. I also tried reinstalling Xcode command-line tools, but it didn’t solve the issue…
Then finally, I figured out the solution.
There are 2 steps to resolve this issue.
Step 1 Align command-line tools
In my case, I use Xcode-beta.app
I needed to check the version of command-line tools matches Xcode.
- Open Xcode-beta.app
- Go to Preference > Locations
- Select the right version of command-line tools
Step 2 Install python
In this case, I installed 3.8.0. If you want to install a different version, you will need to change the version in the following command.
$ pyenv versions * system (set by /Users/koji/.pyenv/version) 3.8.0</span>
Hopefully, this will be useful to some of you!!!