84 votes

module python bz2 manquant

Je l'ai installé dans mon répertoire personnel.

[spatel@~ dev1]$ /home/spatel/python-2.7.3/bin/python -V
Python 2.7.3

J'essaie d'exécuter un script qui nécessite la version 2.7.x de python, et j'obtiens une erreur bz2 manquante.

[spatel@~ dev1]$ ./import_logs.py
Traceback (most recent call last):
  File "./import_logs.py", line 13, in <module>
    import bz2
ImportError: No module named bz2

J'ai essayé d'installer le module bz2 mais j'ai eu beaucoup d'erreurs.

 [spatel@dev1 python-bz2-1.1]$ /home/spatel/python-2.7.3/bin/python setup.py install
    ...
    ...
    ...
    bz2.c:1765: error: âBZ_FINISH_OKâ undeclared (first use in this function)
    bz2.c:1765: warning: comparison between pointer and integer
    bz2.c:1771: error: âPyMemberDefâ has no member named âavail_outâ
    bz2.c:1778: error: âPyMemberDefâ has no member named ânext_outâ
    bz2.c:1778: error: âPyMemberDefâ has no member named âtotal_out_hi32â
    bz2.c:1778: error: âPyMemberDefâ has no member named âtotal_out_lo32â
    bz2.c:1778: error: invalid operands to binary +
    bz2.c:1778: warning: statement with no effect
    bz2.c:1779: error: âPyMemberDefâ has no member named âavail_outâ
    bz2.c:1779: error: âPyMemberDefâ has no member named ânext_outâ
    bz2.c:1779: error: invalid operands to binary -
    bz2.c:1779: error: invalid operands to binary -
    bz2.c:1779: warning: statement with no effect
    bz2.c:1783: error: âPyMemberDefâ has no member named âavail_outâ
    bz2.c:1784: error: âPyMemberDefâ has no member named âtotal_out_hi32â
    bz2.c:1784: error: âPyMemberDefâ has no member named âtotal_out_lo32â
    bz2.c:1784: warning: passing argument 2 of â_PyString_Resizeâ makes integer from pointer without a cast
    error: command 'gcc' failed with exit status 1

1voto

Jalal Mostafa Points 677

Pour moi, cela ne se produit que dans Jupyter lors de l'importation de pandas.

Ma solution a consisté à copier le contenu de /usr/lib/python3.8/lib-dynload (y compris _bz2.cpython-38-x86_64-linux-gnu.so ) à ~/.local/lib/python3.8/site-packages/ .

1voto

bluetata Points 97

J'ai corrigé le problème comme suit

  1. # sudo find / -name '*_bz2*'

résultat de la recherche échantillon

/usr/lib64/python3.6/lib-dynload/_bz2.cpython-36m-x86_64-linux-gnu.so

  1. # sudo cp /usr/lib64/python3.6/lib-dynload/_bz2.cpython-36m-x86_64-linux-gnu.so /usr/local/python3.8.5/lib/python3.8/lib-dynload
  2. sudo mv _bz2.cpython-36m-x86_64-linux-gnu.so _bz2.cpython-38-x86_64-linux-gnu.so

si votre python est 3.7 vous devez changer le nom du fichier de 36m a 37m .

0voto

chi doujiao Points 1

Voici ma solution sur CentOS : (les étapes 2 à 6 peuvent être ignorées)

  1. sudo yum install bzip2-devel

  2. télécharger bzip2-1.0.6.tar.gz de https://github.com/nemequ/bzip2/releases

  3. tar -zxvf bzip2-1.0.6.tar.gz

  4. cd bzip2-1.0.6

  5. make && make install

  6. télécharger le fichier à partir de https://github.com/Imaginashion/ccdev-vision/blob/master/.fr-d0BNfn/django-jquery-file-upload/venv/lib/python3.5/lib-dynload/_bz2.cpython-35m-x86_64-linux-gnu.so et le déplacer vers /[your python path]/lib-dynload/_bz2.cpython-35m-x86_64-linux-gnu.so

  7. sudo ln -s `find /usr/lib64/ -type f -name "libbz2.so.1*"` /usr/lib64/libbz2.so.1.0 crédit à https://michaelheap.com/error-while-loading-shared-libraries-libbz2-so-1-0-cannot-open-shared-object-file-on-centos-7

0voto

Jele Reteste Points 1

J'ai eu le même problème sur debian stretch avec un python 3.6.9 compilé localement. Dans /usr/local/lib/python3.6/lib-dynload/, il y avait un fichier _bz2.cpython-365m-x86_64-linux-gnu.so (notez le ' 365m '...) J'ai créé les liens symboliques vers cette librairie, et cela a résolu le problème :

sudo ln -s _bz2.cpython-365m-x86_64-linux-gnu.so _bz2.cpython-369m-x86_64-linux-gnu.so
sudo ln -s _bz2.cpython-365m-x86_64-linux-gnu.so _bz2.cpython-36m-x86_64-linux-gnu.so

0voto

Guru Bhandari Points 49

J'ai également obtenu cette sortie gênante et j'ai corrigé cette erreur. J'ai obtenu cette erreur en fait dans Python 3.7 y 3.8 . Je n'avais même pas les privilèges sudo sur mon serveur distant, mais j'ai réussi à corriger cette erreur en rétrogradant Python. Installation Python 3.6 au lieu de 3.7 ou 3.8 résout le problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X