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

4voto

Jingjia Luo Points 41

La solution ci-dessus peut résoudre les problèmes de bz2 avec python2.7. mais pas avec python 3.x Oui, vous avez besoin de _bz2.cpython-3xm-x86_64-linux-gnu.so, mais vous devez le compiler dans votre propre environnement.

voici ma solution :

  1. yum install bzip2-devel. (ou apt-get)
  2. télécharger bzip2-1.0.6. make && make install ()
  3. construire le fichier _bz2.cpython de Python3 comme ceci :

vim run.sh dans le dossier du code source de python3:Python-3.x.x

export CFLAGS="-I/usr/include"
export LDFLAGS="-L/usr/lib64"
export LD_LIBRARY_PATH=/usr/lib64
make distclean
./configure --prefix=/home/xxx/Python3 && make && make install

vous pouvez mettre un préfixe identique à celui de votre préversion, cela ne désinstallera aucun des paquets que vous avez installés. Et avant cela, faites un dossier de sauvegarde.

3voto

AFoglia Points 3791

Vous devez avoir la version de développement de la bibliothèque bz2 c installée. Ce n'est probablement pas le cas et c'est pourquoi elle n'a pas été installée lorsque vous avez créé votre copie utilisateur de Python. Sur Ubuntu, c'est le paquet libbz2-dev. Il porte probablement le même nom ou un nom similaire sur Fedora. Vous pouvez également le télécharger à partir de www.bzip.org.

3voto

hafiz031 Points 66

Cela se produit en raison d'une .so est manquant.

Dites pour python3.7 télécharger le fichier à partir de : _bz2.cpython-37m-x86_64-linux-gnu.so

Pour les différentes versions de python essayez de trouver ce fichier pour votre version. Dites pour python3.8 changer 37 a 38 etc. et trouver et télécharger le fichier.

Maintenant pour Ubuntu : copier le fichier à l'intérieur de /usr/local/lib/python3.7 en utilisant sudo privilège.

Pour ce faire, allez dans le dossier où le fichier est téléchargé et exécutez la commande (modifiez le nom du fichier et le dossier de destination en fonction de votre python en conséquence) :

sudo cp _bz2.cpython-37m-x86_64-linux-gnu.so /usr/local/lib/python3.7

Télécharger enfin python Extraire le fichier zip et après l'extraction, le configurer et le compiler :

./configure --enable-optimizations
sudo make altinstall

2voto

trinth Points 1058

Je dois également ajouter que sous CentOS 6, assurez-vous d'avoir bzip2-devel no bzip2-libs installés.

1voto

duybinh0208 Points 61

Je rencontre également ce problème lors de l'installation Python à partir d'un autre endroit (j'utilise Python 3.7.5 en Centos 7 ).

Voici les étapes que j'ai suivies pour qu'il puisse fonctionner :

  1. Exporter les variables d'environnement

    export PATH=<YOUR_PYTHON_PATH>/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin export PYTHONPATH=<YOUR_PYTHON_PATH>/lib/python3.7/site-packages export LD_RUN_PATH=/usr/local/lib:/usr/lib64 export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib64 export CFLAGS="-I/usr/include" export LDFLAGS="-L/usr/lib64"

  2. Installer bzip2-devel

    yum install -y bzip2-devel

  3. Télécharger et compiler bzip2

    wget/curl <bzip2_url> make make install

Ce faisant, vous n'avez pas besoin de télécharger le fichier _bz2.cpython-35m-x86_64-linux-gnu.so fichier.

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