ModuleNotFoundError: No module named 'pyexpat'

2019-08-26 16:47:06 浏览数 (1)

在使用pyenv安装python 3.6.9的时候遇到了- ModuleNotFoundError: No module named 'pyexpat' 环境:mac os10.14.4

先介绍下操作过程: 起初执行了下面两条命令,接着执行pyenv install 3.6.9时,是安装成功了的。

代码语言:javascript复制
$ brew update
$ brew install pyenv

后面稍微仔细的看了下官方git介绍的安装过程,又执行了以下操作:

代码语言:javascript复制
# Add pyenv init to your shell to enable shims and autocompletion. 
$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; thenn  eval "$(pyenv init -)"nfi' >> ~/.bash_profile

# Restart your shell so the path changes take effect. You can now begin using pyenv.
$ exec "$SHELL"

-------------------------------------------------------

# Install Python build dependencies before attempting to install a new Python version.
我觉得问题出在这步,由于apple使用了自己的一套类似openssl等东西,再装类似的东西 可能就会起冲突了

$ brew install openssl readline sqlite3 xz zlib # optional, but recommended:

# When running Mojave or higher (10.14 ) you will also [need to install the additional SDK headers](https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes#3035624):
$ sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

接着执行,下面这行 安装python 3.6.9时,就出现 如题目所示的错误了ModuleNotFoundError: No module named 'pyexpat'

代码语言:javascript复制
$ pyenv install 3.6.9

这是整个人都不好了。。。

看了一下午的Stack Overflow上的解答,还是没找到合适的解决方案。 在Stack Overflow上某个靠后的答案中有这样一条命令 说可以解决

代码语言:javascript复制
$ SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk MACOSX_DEPLOYMENT_TARGET=10.14 pyenv install 3.7.3

但是,当时机器中没装XCode,就没有试这条命令 SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk MACOSX_DEPLOYMENT_TARGET=10.14 pyenv install 3.7.3

折腾了不少时间后,又安装了XCode。又试了试之前的那些解决方案 仍是不能解决问题。最后就又试了试下面这条命令SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk MACOSX_DEPLOYMENT_TARGET=10.14 pyenv install 3.7.3。还好成功了。那个累呀。。。

0 人点赞