Pau*_*sta 4 python macos homebrew lzma pyenv
尝试使用 pyenv 在 macOS 上构建 python 版本,但我所做的每次安装都以
? python
>>> import lzma
ModuleNotFoundError: No module named '_lzma'
Run Code Online (Sandbox Code Playgroud)
我已经安装了以下所有软件包:
brew install openssl readline sqlite3 xz zlib
xcode-select --install
Run Code Online (Sandbox Code Playgroud)
唯一需要注意的是 homebrew 将软件包安装到~/.brew.
任何意见都会受到赞赏。
Nei*_*aft 138
之前的答案都不适合我。这个要点中的说明对我有用。
简而言之:您可能缺少这些xz库,在这种情况下,您可以使用 Homebrew 安装它们,然后从以下位置重新安装/重建 Python 版本pyenv:
$ brew install xz
$ pyenv uninstall <desired-python-version>
$ pyenv install <desired-python-version>
Run Code Online (Sandbox Code Playgroud)
注意:我只有安装的Python有这个问题pyenv,Mac系统Python或condapython没有这个问题。brew install python除非您有特定需求pyenv(例如需要对 python 版本/更新进行更多控制),否则最好使用breed python ( )。
LC1*_*117 20
这为我解决了这个问题:
sudo apt-get install lzma
sudo apt-get install liblzma-dev
sudo apt-get install libbz2-dev
Run Code Online (Sandbox Code Playgroud)
并将此文件添加到您当前的环境中:例如(请参阅: https: //github.com/pandas-dev/pandas/issues/27532#issuecomment-822272237):
sudo cp /usr/lib/python3.8/lib-dynload/_bz2.cpython-38-x86_64-linux-gnu.so /usr/local/lib/python3.8/
sudo cp /usr/lib/python3.8/lib-dynload/_lzma.cpython-38-x86_64-linux-gnu.so /usr/local/lib/python3.8/
Run Code Online (Sandbox Code Playgroud)
例如,在我的运行环境中:
sudo cp /usr/lib/python3.8/lib-dynload/_bz2.cpython-38-x86_64-linux-gnu.so /home/luca/.asdf/installs/python/3.8.10/lib/python3.8`
sudo cp /usr/lib/python3.8/lib-dynload/_lzma.cpython-38-x86_64-linux-gnu.so /home/luca/.asdf/installs/python/3.8.10/lib/python3.8
Run Code Online (Sandbox Code Playgroud)
小智 7
基于pyenv wiki,您应该使用标志安装所需的python版本--enable-framework。它确实对我有用。
PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.6.7
Run Code Online (Sandbox Code Playgroud)
原因是您尝试使用的模块是在C 中实现的,并且具有共享库的CPython将使用上述标志构建。
谷歌总是引导我到这个线程,但这里有一个很好的答案
简而言之,您需要执行以下操作:
CFLAGS="-I$(brew --prefix xz)/include" LDFLAGS="-L$(brew --prefix xz)/lib" pyenv install 3.9.1
Run Code Online (Sandbox Code Playgroud)
如果您是 M1 用户,这将在 Rosetta 下为您工作。
框架构建对我不起作用。
最终弄清楚了。仅当将 Homebrew 目录从默认目录移出时才会出现此问题。当 Homebrew 正常安装时不需要这样做。
我将此添加到我的.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"
Run Code Online (Sandbox Code Playgroud)
Homebrew 警告您应该对其他已安装的软件包执行此操作,但不能对 xz 执行此操作。大概是因为如果Homebrew 生活在它期望的地方,就不需要它。
| 归档时间: |
|
| 查看次数: |
6613 次 |
| 最近记录: |