mac使用pyenv管理python环境
2021-04-14 本文已影响0人
不上进的码农
首先安装pyenv
brew install pyenv
执行
pyenv install --list
查看可安装的python版本
这里我们选择安装python3.6
pyenv install 3.6.0
等待半天报错
Traceback (most recent call last):
File "/usr/local/opt/pyenv/versions/3.6.0/bin/pyinstaller", line 11, in <module>
load_entry_point('PyInstaller==3.3.1', 'console_scripts', 'pyinstaller')()
File "/usr/local/opt/pyenv/versions/3.6.0/lib/python3.6/site-packages/PyInstaller/__main__.py", line 94, in run
run_build(pyi_config, spec_file, **vars(args))
File "/usr/local/opt/pyenv/versions/3.6.0/lib/python3.6/site-packages/PyInstaller/__main__.py", line 46, in run_build
PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
File "/usr/local/opt/pyenv/versions/3.6.0/lib/python3.6/site-packages/PyInstaller/building/build_main.py", line 791, in main
build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
File "/usr/local/opt/pyenv/versions/3.6.0/lib/python3.6/site-packages/PyInstaller/building/build_main.py", line 737, in build
exec(text, spec_namespace)
File "<string>", line 16, in <module>
File "/usr/local/opt/pyenv/versions/3.6.0/lib/python3.6/site-packages/PyInstaller/building/build_main.py", line 213, in __init__
self.__postinit__()
File "/usr/local/opt/pyenv/versions/3.6.0/lib/python3.6/site-packages/PyInstaller/building/datastruct.py", line 161, in __postinit__
self.assemble()
File "/usr/local/opt/pyenv/versions/3.6.0/lib/python3.6/site-packages/PyInstaller/building/build_main.py", line 545, in assemble
self._check_python_library(self.binaries)
File "/usr/local/opt/pyenv/versions/3.6.0/lib/python3.6/site-packages/PyInstaller/building/build_main.py", line 629, in _check_python_library
raise IOError(msg)
OSError: Python library not found: Python, libpython3.6.dylib, libpython3.6m.dylib, .Python
This would mean your Python installation doesn't come with proper library files.
This usually happens by missing development package, or unsuitable build parameters of Python installation.
* On Debian/Ubuntu, you would need to install Python development packages
* apt-get install python3-dev
* apt-get install python-dev
* If you're building Python by yourself, please rebuild your Python with `--enable-shared` (or, `--enable-framework` on Darwin)
解决方法
% 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.8.3 < <(curl -sSL https://github.com/python/cpython/commit/8ea6353.patch\?full_index\=1)
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.8.3.tar.xz...
-> https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tar.xz
Installing Python-3.8.3...
patching file Misc/NEWS.d/next/macOS/2020-06-24-13-51-57.bpo-41100.mcHdc5.rst
patching file configure
Hunk #1 succeeded at 3398 (offset -28 lines).
patching file configure.ac
Hunk #1 succeeded at 498 (offset -12 lines).
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
Installed Python-3.8.3 to /Users/pritam/.pyenv/versions/3.8.3
% pyenv versions
* system (set by /Users/pritam/.pyenv/version)
3.6.8
3.6.9
3.8.0
3.8.3
原文链接:https://github.com/pyenv/pyenv/issues/1643#issuecomment-655710632
按照同样的方法可以使用pipenv安装不同版本的python环境了