[PYTHON] Lorsque j'essaye d'importer des pandas sur macOS, j'obtiens l'erreur No module named'_bz2 '

environnement

--macOS Big Sur version 11.0.1 --Installez python avec pyenv

problème

Quand j'ai par hasard essayé d'importer des pandas avec python,

import pandas as pd

J'ai eu l'erreur suivante:

Traceback (most recent call last):
...(Omission)
ImportError: No module named '_bz2'

Cause

Lorsque vous installez python avec pyenv, vous pouvez vous attendre à ce que la bibliothèque bz2 pour python ne soit pas installée et soit incomplète car le compilateur n'a pas reconnu le package bzip2.

Donc, quand je l'ai installé avec pyenv, j'aurais vu l'avertissement suivant.

$ pyenv install 3.9.0

...(Omission)
WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?

Solutions

Avec le compilateur conscient de la bibliothèque bzip2, utilisez pyenv pour réinstaller python.

1. Installez le package bzip2

$ brew install bzip2

Pendant l'installation, vous verrez probablement un message similaire au suivant: C'est très important.


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"

2. Définissez LDFLAGS et CPPFLAGS

Si vous l'installez simplement avec brew, le compilateur ne reconnaîtra pas le paquet bzip2 lors de la construction de python avec pyenv. Pour que le compilateur le reconnaisse, vous devez définir LDFLAGS et CPPFLAGS comme dans le message qui est sorti plus tôt. Pour ce faire, ajoutez l'instruction suivante dans votre .zprofile ou .bash_profile:

export LDFLAGS="-L/usr/local/opt/bzip2/lib"
export CPPFLAGS="-I/usr/local/opt/bzip2/include"

Si vous aviez précédemment défini différents LDFLAGS et CPPFLAGS, vous pouvez spécifier plusieurs de ces FLAG en les connectant avec un espace, vous pouvez donc également faire ce qui suit:

export LDFLAGS="$LDFLAGS -L/usr/local/opt/bzip2/lib"
export CPPFLAGS="$CPPFLAGS -I/usr/local/opt/bzip2/include"

3. Réinstallez python

Installez la version de votre choix avec pyenv.

$ pyenv install <version>

Peut-être que l'avertissement précédent a disparu.

Après cela, suivez la procédure d'installation habituelle de pyenv, spécifiez la version principale de python à utiliser et rechargez le shell.

$ pyenv global <La version que vous venez d'installer>
$ exec $SHELL -l

Vous devriez probablement pouvoir charger des pandas.

(Référence) Pour Linux

Les articles suivants seront utiles. Problème avec aucun module nommé'_bz2 'dans scikit-learn

Impressions

J'ai trouvé de nombreuses façons de gérer la même erreur sous Linux, mais je n'ai pas trouvé de moyen de gérer l'erreur sous macOS, j'ai donc dû la résoudre moi-même.

Recommended Posts

Lorsque j'essaye d'importer des pandas sur macOS, j'obtiens l'erreur No module named'_bz2 '
Lorsque j'importe TensorFlow vers Python, j'obtiens "Erreur d'importation: échec du chargement de la DLL: le module spécifié est introuvable."
J'obtiens [Erreur 2055] en essayant de me connecter à MySQL avec Heroku
J'obtiens une erreur lorsque j'essaie d'élever Python à la série 3 en utilisant pyenv dans Catalina
J'obtiens une erreur avec les pandas d'importation.
Lorsque j'essaye de mettre à jour les données sur DynamoDB avec Python (boto3), j'obtiens "ExpressionAttributeNames contient une clé invalide: Erreur de syntaxe; clé: <nom de clé>"
J'obtiens une erreur Python No module nommée'encodings 'avec la commande aws
Erreur d'importation: impossible d'importer le nom 'Flask' lorsque le nom de fichier est flask.py dans Flask
Un problème avec scikit-learn obtenant l'erreur Aucun module nommé'_bz2 '
Chaque fois que j'essaye de lire un fichier csv en utilisant des pandas, j'obtiens une erreur numpy.
Quand j'essaye d'installer mysqlclient avec Django, j'obtiens l'erreur: la commande 'gcc' a échoué avec l'état de sortie 1.
Que faire si vous obtenez l'erreur ʻERR_FEATURE_UNAVAILABLE_ON_PLATFORM` lors de l'utilisation de ts-node-dev sous Linux
Que faire lorsque swagger-codegen est terminé avec python et Erreur d'importation: aucun module nommé n'apparaît
Lorsque j'essaye de me connecter à MySQL avec mysql-connector-python, je ne peux pas me connecter avec l'erreur "Erreur de connexion SSL: SSL_CTX_set_tmp_dh a échoué"
J'ai eu une erreur lorsque j'ai essayé de traiter luigi en parallèle dans Windows, mais la solution
J'obtiens des erreurs "contrôle de cohérence" et "Aucun module" lors de l'importation numpy
Le record auquel j'étais accro en mettant MeCab dans Heroku
J'ai essayé de démarrer avec Bitcoin Systre le week-end
Lorsque j'essaye d'utiliser pip, le module SSL n'est pas disponible.
Que faire lorsque vous obtenez "Je ne peux pas voir le site !!!!"
Erreur lors de l'installation d'opencv-python sur jetson nano (ModuleNotFoundError: aucun module nommé'skbuild ')
À propos de l'erreur que j'ai rencontrée en essayant d'utiliser Adafruit_DHT à partir de Python sur Raspberry Pi
Que faire lorsque "Erreur OS: [WinError 126] Le module spécifié est introuvable" apparaît dans la torche d'importation
Lorsque j'essaie de mettre à niveau pip, après avoir échoué, on me demande de mettre à niveau et de boucler indéfiniment
Résolution des erreurs lors de l'installation de numba sur macOS
Erreur d'importation: aucun module nommé "xxxxxx" dans Python3
J'obtiens une erreur ~ est zéro, U singulier lors du passage d'une matrice distribuée co-distribuée de la couche linéaire à MultivariateNormal
Dans le tutoriel Chainer, j'obtiens une erreur lors de l'importation d'un package. (moquer)
Je suis tombé sur un code de caractère lors de la conversion de CSV en JSON avec Python
Tentative d'installation d'opencv-python3 sur jetson nano mais erreur (ModuleNotFoundError: aucun module nommé'skbuild ')
Lorsque j'essaye d'utiliser le notebook Jupiter sur Mac, je ne peux sélectionner que python2
Lorsque j'essaye de connecter django et postgresql avec Docker, j'obtiens l'erreur "django.db.utils.OperationalError: impossible de traduire le nom d'hôte" db "en adresse: Nom ou service inconnu"
Solution pour "Erreur d'importation: aucun module nommé demandes"
ModuleNotFoundError: Erreur de module nommé'_bz2 'en Python dans pyenv
J'ai essayé de comprendre comment utiliser les pandas et la colinéarité multiple en utilisant l'ensemble de données Affaires comme thème.
Comment traiter l'erreur "Erreur de type: Aucune signature correspondante trouvée" lors de l'utilisation de pandas fillna
Lorsque j'ai déployé l'application Django sur Heroku, j'ai obtenu le module introuvable: <nom-projet> .wsgi.
Que faire si vous obtenez une erreur d'importation lors de l'importation de matplotlib avec Jupyter
J'ai eu une erreur lorsque j'installe des pandas sur Mac, alors je l'ai traitée
J'obtiens une erreur d'importation avec Python Beautiful Soup
Essayez d'estimer le nombre de likes sur Twitter
J'obtiens une erreur lorsque je mets opencv dans pyautoGUI
Essayez d'obtenir le contenu de Word avec Golang
J'obtiens une erreur en essayant meinheld + WebSocket + mongodb
Je reçois "trop tôt pour créer une image" sur tkinter
J'ai eu une erreur lorsque j'ai installé tweepy sur macOS Sierra, alors je l'ai résolue.
Que faire lorsque vous obtenez une erreur indiquant «Échec temporaire de la résolution du nom» sous Linux
Lorsque j'exécute pipenv install <nom du package>, j'obtiens une erreur "Aucune distribution correspondante trouvée pour <nom du package>".
Lorsque j'ai installé python sur macOS et que je l'ai utilisé, j'ai eu une erreur lorsque j'ai mis une connexion https
[Solution] Lorsque j'essaye de me connecter à CloudSQL avec GAE, j'obtiens une ImportError uniquement lorsque dev_appserver.
Que faire si vous obtenez une erreur non définie: l'objet 'Module_six_moves_urllib_parse' n'a pas d'attribut 'urlencode' sur MacOS