web-dev-qa-db-fra.com

aucun module nommé zlib

Tout d'abord, s'il vous plaît supporter avec moi. J'ai du mal à dire aux autres mon problème et c'est un long fil….

J'utilise pythonbrew pour exécuter plusieurs versions de python dans Ubuntu 10.10. Pour installer pythonbrew et son fonctionnement, veuillez vous référer au lien ci-dessous

http://www.howopensource.com/2011/05/how-to-install-and-manage-different-versions-of-python-in-linux/

Après avoir lu quelques threads stackoverflow, j'ai finalement trouvé le fichier nommé Setup dans ce répertoire: ~/.pythonbrew/pythons/Python-2.7.1/lib/python2.7/config

In this Setup file I see 
# Andrew Kuchling's zlib module.
# This require zlib 1.1.3 (or later).
# See http://www.gzip.org/zlib/
# zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

Je n'ai pas commenté la dernière ligne, puis j'ai à nouveau lancé python -v. Cependant, j'ai reçu la même erreur lorsque j'ai essayé import zlib, alors je suppose que je dois faire quelque chose pour installer zlib dans la bibliothèque. 

Mais je n'ai aucune idée de ce que je dois faire. Quelqu'un peut-il me diriger s'il vous plaît dans la bonne direction ??? Merci beaucoup!

Je le fais parce que je veux utiliser une version différente de python dans différents virtualenv que j'ai créés. Quand j’ai fait virtualenv -p python2.7 je n’ai reçu aucun module nommé zlib. 

jwxie518@jwxie518-P5E-VM-DO:~$ virtualenv -p python2.7 --no-site-packages testenv

Running virtualenv with interpreter /home/jwxie518/.pythonbrew/pythons/Python-2.7.1/bin/python2.7

Traceback (most recent call last):
  File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 17, in <module>
    import zlib

ImportError: No module named zlib

MODIFIER

Je dois installer 2.7.1 en ajoutant --force.

Je développe Django, et j’ai besoin de certains de ces modules manquants, par exemple sqlite3, et pour créer mon environnement virtuel, j’ai certainement besoin de zlib. Si je viens d'utiliser la valeur par défaut du système (2.6.6), je n'ai aucun problème.

Pour ce faire avec les paramètres par défaut du système, tout ce que j'ai à faire est

virtualenv --no-site-packages testenv

Merci! 


(2e édition)

J'ai également installé la version 3.2 et je l'ai testée sans problème. Je suppose donc que mon problème réside dans la manière d'installer le (s) module (s) manquant (s).

jwxie518@jwxie518-P5E-VM-DO:~$ virtualenv -p python3.2  testenv
Running virtualenv with interpreter /home/jwxie518/.pythonbrew/pythons/Python-3.2/bin/python3.2
New python executable in testenv/bin/python3.2
Also creating executable in testenv/bin/python
Installing distribute..................................................................................................................................................................................................................................................................................................................................done.
Installing pip...............done.
jwxie518@jwxie518-P5E-VM-DO:~$ virtualenv -p python3.2 --no-site-packages testenv
Running virtualenv with interpreter /home/jwxie518/.pythonbrew/pythons/Python-3.2/bin/python3.2
New python executable in testenv/bin/python3.2
Also creating executable in testenv/bin/python
Installing distribute..................................................................................................................................................................................................................................................................................................................................done.
Installing pip...............done.
40
CppLearner

On dirait que vous devez installer le paquet devel pour zlib et vouloir probablement faire quelque chose comme Sudo apt-get install zlib1g-dev (je n'utilise pas Ubuntu, vous voudrez donc vérifier le paquet). Au lieu d'utiliser python-brasser, vous pouvez envisager de simplement compiler à la main, ce n'est pas très difficile. Il suffit de télécharger les sources et configure, make, make install. Vous voudrez au moins placer --prefix quelque part, pour qu'il soit installé où vous le souhaitez.

./configure --prefix=/opt/python2.7 + other options
make
make install

Vous pouvez vérifier quelles options de configuration sont disponibles avec ./configure --help et voir comment votre python système a été compilé en procédant comme suit:

python -c "import sysconfig; print sysconfig.get_config_var('CONFIG_ARGS')"

La clé est de vous assurer que les packages de développement sont installés pour votre système, afin que Python puisse créer les modules zlib, sqlite3, etc. Les documents Python couvrent le processus de construction plus en détail: http://docs.python.org/using/unix.html#building-python .

29
zeekay

Par défaut, lorsque vous configurez une source Python, le module zlib est désactivé. Vous pouvez donc l'activer à l'aide de l'option --with-zlib lorsque vous le configurez. Alors ça devient 

./configure --with-zlib
21
azwar

Pour le cas que j'ai rencontré, j'ai constaté qu'il manque des modules après make. Alors j'ai fait ce qui suit:

  1. installer zlib-devel
  2. faire et installer à nouveau python.
18
jawjaway

Après avoir exécuté configure, vous pouvez modifier l’option config dans le fichier Modules/Setup comme suit:

zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

Ou vous pouvez supprimer la mise en commentaire de la ligne zlib telle quelle.

9
YYDywc

Après avoir installé le paquet dev zlib manquant, vous pouvez également utiliser pythonbrew pour désinstaller puis réinstaller la version de python que vous voulez et il semble que le nouveau paquet soit compilé pour corriger les problèmes. De cette façon, vous pouvez continuer à utiliser pythonbrew et ne pas avoir à faire la compilation vous-même (bien que ce ne soit pas si difficile)

3
dnfehren

La solution la plus simple que j'ai trouvée est donnée sur python.org devguide:

Sudo apt-get build-dep python3.6

Si ce paquet n’est pas disponible pour votre système, essayez de réduire la version mineure jusqu’à ce que vous trouviez un paquet disponible dans le gestionnaire de paquets de votre système.

J'ai essayé d'expliquer les détails, sur mon blog .

0
shibli049

J'ai eu beaucoup de mal à créer un environnement virtuel (venv) comme décrit dans le guide d'installation de tensorflow .

La plupart des commandes listées dans ce post ne m'ont pas aidé non plus, donc si c'est aussi votre cas, c'est ce que j'ai fait:

  1. pip3 install --user pipenv 
  2. pip install virtualenv

Installe les dépendances pour créer un environnement virtuel

  1. mkdir myenv 

Crée un nouveau répertoire appelé myenv mais vous pouvez l’appeler comme vous voulez, par exemple. mynewenv

  1. cd myenv

Ou ce que vous appelez votre répertoire pour: cd [votre_nom de répertoire]

  1. virtualenv -p /usr/bin/python3 venv

Crée un environnement virtuel appelé venv dans le dossier myenv. Vous pouvez appeler votre env virtuel comme bon vous semble, par exemple. vitualenv [v_env_name]

  1. source ./venv/bin/activate

Active l'environnement virtuel. Notez que si vous choisissez un autre env. nommez vos commandes doivent être écrites comme telles source ./[v_env_name]/bin/activate

  1. deactivate

Désactive l'environnement virtuel.

Note: J'utilise Python 3.6.6 & Ubuntu 18.04

source pour les commandes

0
FlyingZipper

Mon objectif était de créer un nouveau projet Django à partir de la ligne de commande dans Ubuntu, comme suit:

Django-admin.py startproject mysite

J'ai installé python2.7.5. J'ai eu cette erreur:

ImportError: No module named zlib

Pendant des heures, je n'ai pas pu trouver de solution, jusqu'à maintenant!

Voici un lien vers la solution - 

http://doc.biblissima-condorcet.fr/loris-setup-guide-ubuntu-debian

J'ai suivi et exécuté les instructions de la section 1.1 et cela fonctionne parfaitement! C'est une solution facile.

0
PowerRanger100