recherche

Maison  >  Questions et réponses  >  le corps du texte

python3.x - centos下,python在virtualenv新建python3报错

使用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,求大神帮忙!

迷茫迷茫2808 Il y a quelques jours945

répondre à tous(2)je répondrai

  • 怪我咯

    怪我咯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 _sqlite3Cette chose ne nécessite que _sqlite3.so ce fichier. zlibJe ne sais pas, désolé...

    Essayez-le, en théorie, cela peut être fait,

    répondre
    0
  • 大家讲道理

    大家讲道理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.

    répondre
    0
  • Annulerrépondre