Maison > Questions et réponses > le corps du texte
使用virtualenv -p /usr/local/bin/python3.4 py34env
安装python3环境报错,缺少zlib
可在python中导入zlib
缺没有报错,错误如下:
[root@localhost crazycabbage]# virtualenv -p /usr/local/bin/python3.4 py34env
Running virtualenv with interpreter /usr/local/bin/python3.4
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/virtualenv.py", line 22, in <module>
import zlib
ImportError: No module named 'zlib'
[root@localhost crazycabbage]# python
Python 2.7.5 (default, Nov 20 2015, 02:00:19)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import zlib
>>>
Google后说在编译时加上--with-zlib
,可报错 unrecognized options: --with-zlib
,求大神帮忙!
怪我咯2017-04-17 17:37:13
CentOS-7
est installé par défaut Python2.7.5
, comme écrit dans l'interpréteur que vous saisissez après avoir saisi shell
sous Python
: Python 2.7.5 (default, Nov 20 2015, 02:00:19)。
Python3.4
doit être installé par vous-même. La raison pour laquelle 2.7.5
peut être téléchargé import zlib
mais 3.4
ne peut pas être téléchargé peut-être parce que votre bibliothèque 3.4
n'a pas la bibliothèque zlib
, donc vous Il faut d'abord confirmer si 3.4
est là ou non zlib
.
Saisie du terminal /usr/local/bin/python3.4
pour saisir l'interprète de 3.4
, puis saisissez import zlib
pour voir s'il y a une ImportError
exception signalée, si c'est le cas, continuez à lire le contenu suivant, si tout est normal, donne-le-moi Laisse un message……
Vous devez essayer de recompiler et d'installer le Python
correspondant à la version zlib
pour vous assurer que le bon zlib
est installé. Je vous recommande même d'installer zlib-devel
également.
Mais souvent, la réinstallation ne fonctionne pas, ou lors de l'installation à l'aide d'un gestionnaire de packages tel que Yum
, vous verrez des mots comme "existe déjà" et "installé" (en anglais bien sûr) pendant le processus d'installation, ou. il ne peut toujours pas être utilisé après une installation forcée.
C'est parce qu'il est toujours installé dans le répertoire bibliothèque de Python2.7
La solution est la suivante :
Dans l'interpréteur de Python2.7.5
, saisissez le code suivant pour afficher le répertoire de la bibliothèque 2.7 :
import sys
print '\n'.join(sys.path)
Résultat de sortie :
/usr/lib64/python27.zip
/usr/lib64/python2.7
/usr/lib64/python2.7/plat-linux2
/usr/lib64/python2.7/lib-tk
/usr/lib64/python2.7/lib-old
/usr/lib64/python2.7/lib-dynload
/usr/lib64/python2.7/site-packages
/usr/lib64/python2.7/site-packages/gtk-2.0
/usr/lib/python2.7/site-packages
La méthode la plus directe consiste à ajouter les répertoires requis au chemin système de Python3.4.
Changez d'abord le Python par défaut de votre système en Python3.4 au lieu de Python2.7.5 :
ln -fs /usr/local/bin/python3.4 /usr/bin/python
Entrez Python
dans le terminal pour saisir la vérification de l'interprète.
Ensuite, exécutez vim ~/.bashrc
pour modifier les variables d'environnement système. Après être entré en mode édition, ajoutez cette phrase export PYTHONPATH=$PYTHONPATH:/usr/lib64/python2.7/xxx/:/usr/lib64/python2.7/xxx/
à la fin du fichier xxx est le répertoire de la bibliothèque dont vous avez besoin, puis séparez-le par deux points. entrez source ~/.bashrc
dans le terminal pour en faire le terminal actuel. Le terminal est valide, ou redémarrez directement l'appareil.
Vous pouvez me demander, comment puis-je savoir dans quel répertoire zlib
se trouve ? Euh, d'accord, aidez les gens jusqu'au bout...
Entrez l'interpréteur Python3.4
, mettez les sorties des répertoires 2.7
ci-dessus un par un append
dans la liste sys.path
, puis import zlib
essayez-le , non Jusqu'à ce que l'erreur soit signalée, la méthode est rudimentaire mais efficace.
Bien que l'importation de l'intégralité du répertoire soit directe et pratique, elle peut entrer en conflit avec la bibliothèque 3.4, vous feriez donc mieux de savoir quels fichiers zlib
sont, puis copy
accéder au chemin système de 3.4
, tel car _sqlite3
Cette chose ne nécessite que _sqlite3.so
ce fichier. zlib
Je ne sais pas, désolé...
Essayez-le, en théorie, cela peut être fait,
大家讲道理2017-04-17 17:37:13
--with-zlib
devrait signifier que vous l'avez ajouté lors de la compilation de Python 3.4. C'est évidemment parce que votre version Python 2.7 a compilé zlib mais pas la version 3.4.