ModuleNotFoundError:在macos上使用pyenv构建python时,没有名为“_lzma”的模块

2024-06-16 09:58:47 发布

您现在位置:Python中文网/ 问答频道 /正文

尝试使用pyenv在macOS上构建python版本,但每次安装都以pyenv结束

❯ python
>>> import lzma

ModuleNotFoundError: No module named '_lzma'

我已安装以下所有软件包:

brew install openssl readline sqlite3 xz zlib
xcode-select --install

唯一需要注意的是,homebrew会将程序包安装到~/.brew

欢迎您的任何意见


Tags: installnoimport版本pyenvreadlinemacossqlite3
3条回答

基于pyenv wiki,您应该安装所需的带有--enable-framework标志的python版本。它确实对我有用

PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.6.7

原因是您尝试使用的模块是在C中实现的,而带有共享libs的CPython将使用上述标志构建

之前的答案对我都不管用。在this gist中的指令对我起了作用

简而言之:您可能缺少xz库,在这种情况下,您可以使用自制软件安装它们,然后从pyenv重新安装/重建Python版本:

$  brew install xz
$  pyenv uninstall <desired-python-version>
$  pyenv install <desired-python-version>

注意:我只在pyenv安装的Python上遇到了这个问题,而不是Mac系统Python或condaPython。最好使用编写好的python(brew install python),除非您特别需要pyenv(比如需要对python版本/更新进行更多控制)

最后弄明白了。此问题仅在将自制目录从默认目录移动时出现。正常安装自制软件时不需要这样做

我将此添加到我的.zshrc(或者,您的.bashrc.bash_profile

export LDFLAGS="-L/Users/pcosta/.brew/opt/xz/lib $LDFLAGS"
export CPPFLAGS="-I/Users/pcosta/.brew/opt/xz/include $CPPFLAGS"
export PKG_CONFIG_PATH="/Users/pcosta/.brew/opt/xz/lib/pkgconfig:$PKG_CONFIG_PATH"

Homebrew警告您应该对其他已安装的软件包执行此操作,而不是xz。大概是因为如果自制软件在它期望的地方使用,它就不需要

相关问题 更多 >