--macOS Big Sur Version 11.0.1
Als ich beiläufig versuchte, Pandas mit Python zu importieren,
import pandas as pd
Ich habe folgenden Fehler erhalten:
Traceback (most recent call last):
...(Unterlassung)
ImportError: No module named '_bz2'
Wenn Sie Python mit pyenv installieren, können Sie davon ausgehen, dass die bz2-Bibliothek für Python nicht installiert und unvollständig ist, da der Compiler das Paket bzip2 nicht erkannt hat.
Wenn ich es mit pyenv installiert hätte, hätte ich die folgende Warnung gesehen.
$ pyenv install 3.9.0
...(Unterlassung)
WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
Wenn der Compiler die bzip2-Bibliothek kennt, verwenden Sie pyenv, um Python neu zu installieren.
$ brew install bzip2
Während der Installation wird wahrscheinlich eine Meldung ähnlich der folgenden angezeigt: Dies ist sehr wichtig.
For compilers to find bzip2 you may need to set:
export LDFLAGS="-L/usr/local/opt/bzip2/lib"
export CPPFLAGS="-I/usr/local/opt/bzip2/include"
Wenn Sie es nur mit Brew installieren, erkennt der Compiler das bzip2-Paket nicht, wenn Sie Python mit pyenv erstellen. Damit der Compiler es erkennt, müssen Sie "LDFLAGS" und "CPPFLAGS" wie in der zuvor veröffentlichten Nachricht festlegen. Fügen Sie dazu die folgende Anweisung in Ihr .zprofile oder .bash_profile ein:
export LDFLAGS="-L/usr/local/opt/bzip2/lib"
export CPPFLAGS="-I/usr/local/opt/bzip2/include"
Wenn Sie zuvor unterschiedliche "LDFLAGS" und "CPPFLAGS" festgelegt haben, können Sie mehr als eine dieser FLAGs angeben, indem Sie sie mit einem Leerzeichen verbinden. Sie können also auch Folgendes tun:
export LDFLAGS="$LDFLAGS -L/usr/local/opt/bzip2/lib"
export CPPFLAGS="$CPPFLAGS -I/usr/local/opt/bzip2/include"
Installieren Sie die Version Ihrer Wahl mit pyenv.
$ pyenv install <version>
Vielleicht ist die vorherige Warnung verschwunden.
Befolgen Sie danach die üblichen pyenv-Installationsverfahren, geben Sie die zu verwendende Python-Hauptversion an und laden Sie die Shell neu.
$ pyenv global <Die gerade installierte Version>
$ exec $SHELL -l
Sie sollten wahrscheinlich in der Lage sein, Pandas zu laden.
Die folgenden Artikel sind hilfreich. Problem ohne Modul mit dem Namen'_bz2 'in scicit-learn
Ich habe viele Möglichkeiten gefunden, um mit dem gleichen Fehler in Linux umzugehen, aber ich konnte keine Möglichkeit finden, mit dem Fehler in macOS umzugehen, also musste ich ihn selbst lösen.
Recommended Posts