在尝试安装Python 3.6.6(for Airflow)使用PyEnv时MacOS,我遇到了以下堆栈跟踪的构建失败
文件"/private/var/folders/6y/kf699bqj2sgcgjshb20fr5zh0000gn/T/python-build.20180721180716.86347/Python-3.6.6/Lib/xmlrpc/client.py",第138行,来自xml.parsers import expat文件"/ private /var/folders/6y/kf699bqj2sgcgjshb20fr5zh0000gn/T/python-build.20180721180716.86347/Python-3.6.6/Lib/xml/parsers/expat.py",第4行,来自pyexpat import*ModuleNotFoundError:没有名为'pyexpat'的模块make:***[install]错误1
BUILD FAILED(OS X 10.13.6使用python-build 20180424)
在/var/folders/6y/kf699bqj2sgcgjshb20fr5zh0000gn/T/python-build.20180721180716.86347检查或清理工作树.结果记录到/ var/folders/6y/kf699bqj2sgcgjsh
我遵循的文档所提到的步骤的建立PyEnv上Mac通过Homebrew.
环境/框架版本
MacOS High Sierra 10.13.6Homebrew 1.7.1PyEnv 1.2.6Python发行版
Python 2.7.15 [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwinPython 3.7.0 [Clang 9.0.0 (clang-900.0.39.2)] on darwin小智 34
我正在为那些试图在 2021 年解决此问题的人发布我的解决方案。我使用的是 macOS Big Sur 版本 11.5.1。对我来说,这有效:
卸载旧工具
$ sudo rm -rf /Library/Developer/CommandLineTools
重新安装 Xcode 命令行工具
$ xcode-选择--安装
使用 pyenv 安装 python
$ pyenv安装3.9.5
小智 18
我在Mojave和Python 3.7.3中遇到了这个问题。
这为我工作:
SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk MACOSX_DEPLOYMENT_TARGET=10.14 pyenv install 3.7.3
Run Code Online (Sandbox Code Playgroud)
Cal*_*m M 12
接受的答案对我不起作用(莫哈韦沙漠),但这确实可以:
sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
Run Code Online (Sandbox Code Playgroud)
感谢http://www.blog.howechen.com/macos-mojave-pyenv-install-multi-version-build-failed-solution/
安装Xcode:
xcode-select --install
Run Code Online (Sandbox Code Playgroud)
安装酿造:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Run Code Online (Sandbox Code Playgroud)
或者
更新酿造:
brew upgrade
Run Code Online (Sandbox Code Playgroud)
安装包:
brew install libxml2
brew install libxslt
brew link libxml2 --force
brew link libxslt --force
brew install openssl
Run Code Online (Sandbox Code Playgroud)
安装 Pyenv
curl https://pyenv.run | bash
Run Code Online (Sandbox Code Playgroud)
将以下行插入到 .bashrc/.zshrc 配置文件中:
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Run Code Online (Sandbox Code Playgroud)
重新启动终端并执行:
pyenv install 3.6.5
Run Code Online (Sandbox Code Playgroud)
如果仍然不起作用:(只需将 python 版本更改为所需的版本 - 在我的情况下,我已将 python 3.6.5 安装到 pyenv)
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)
Run Code Online (Sandbox Code Playgroud)
我可以使它工作的唯一方法是在安装之前通过以下前缀
CFLAGS="-I$(brew --prefix readline)/include -I$(brew --prefix openssl)/include
-I$(xcrun --show-sdk-path)/usr/include" \
LDFLAGS="-L$(brew --prefix readline)/lib -L$(brew --prefix openssl)/lib" \
PYTHON_CONFIGURE_OPTS=--enable-unicode=ucs2 \
pyenv install -v 3.7.1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10890 次 |
| 最近记录: |