cari

Rumah  >  Soal Jawab  >  teks badan

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

迷茫迷茫2803 hari yang lalu937

membalas semua(2)saya akan balas

  • 怪我咯

    怪我咯2017-04-17 17:37:13

    CentOS-7 dipasang secara lalai Python2.7.5, seperti yang ditulis dalam penterjemah yang anda masukkan selepas memasukkan shell di bawah Python: Python 2.7.5 (default, Nov 20 2015, 02:00:19)。

    Python3.4 harus dipasang sendiri Sebab mengapa 2.7.5 boleh dimuat turun import zlib tetapi 3.4 tidak boleh dimuat turun mungkin kerana pustaka 3.4 anda tidak mempunyai pustaka zlib, jadi Anda. kena sahkan sama ada 3.4 ada atau tidak zlib dahulu.

    Input terminal /usr/local/bin/python3.4 untuk memasukkan penterjemah 3.4, kemudian masukkan import zlib untuk melihat jika terdapat sebarang pengecualian ImportError dilaporkan, jika ya, teruskan membaca kandungan berikut, jika semuanya biasa, berikan sahaja kepada saya Tinggalkan mesej……

    Anda perlu cuba menyusun semula dan memasang Python yang sepadan dengan versi zlib untuk memastikan zlib yang betul dipasang, malah saya mengesyorkan agar anda memasang zlib-devel juga.

    Tetapi banyak kali pemasangan semula tidak berfungsi, atau apabila memasang menggunakan pengurus pakej seperti Yum, anda akan melihat perkataan seperti "sudah wujud" dan "dipasang" (dalam bahasa Inggeris sudah tentu) semasa proses pemasangan , atau ia masih tidak boleh digunakan selepas pemasangan paksa.

    Ini kerana ia masih dipasang dalam direktori perpustakaan Python2.7 Penyelesaiannya adalah seperti berikut:

    Dalam penterjemah Python2.7.5, masukkan kod berikut untuk melihat direktori perpustakaan 2.7:

    import sys
    print '\n'.join(sys.path)

    Hasil keluaran:

    /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

    Kaedah paling langsung ialah menambah direktori yang diperlukan pada laluan sistem Python3.4.
    Mula-mula tukar Python lalai sistem anda kepada Python3.4 dan bukannya Python2.7.5:

    ln -fs /usr/local/bin/python3.4 /usr/bin/python

    Masukkan Python dalam terminal untuk memasuki pengesahan jurubahasa.
    Kemudian jalankan vim ~/.bashrc untuk mengedit pembolehubah persekitaran sistem Selepas memasuki mod pengeditan, tambahkan ayat ini export PYTHONPATH=$PYTHONPATH:/usr/lib64/python2.7/xxx/:/usr/lib64/python2.7/xxx/ di hujung fail ialah direktori perpustakaan yang anda perlukan, dan kemudian masukkan source ~/.bashrc dalam terminal untuk menjadikannya terminal semasa sah, atau mulakan semula peranti secara langsung.
    Anda mungkin bertanya kepada saya, bagaimana saya tahu direktori mana zlib berada dalam? Eh, okey, bantu orang sampai habis...
    Masukkan penterjemah Python3.4, letak 2.7 output direktori di atas satu persatu append ke dalam senarai sys.path, dan kemudian import zlib cuba , tidak Sehingga ralat dilaporkan, kaedahnya kasar tetapi berkesan.

    Walaupun mengimport keseluruhan direktori adalah langsung dan mudah, ia mungkin bercanggah dengan pustaka 3.4, jadi anda lebih baik mengetahui fail mana zlib, dan kemudian copy pergi ke laluan sistem 3.4, seperti sebagai _sqlite3Perkara ini hanya memerlukan _sqlite3.so fail ini. zlibSaya tidak tahu, maaf...

    Cuba saja, secara teori boleh buat,

    balas
    0
  • 大家讲道理

    大家讲道理2017-04-17 17:37:13

    --with-zlib bermakna anda menambahkannya semasa menyusun Pyton 3.4. Ini jelas kerana versi Python 2.7 anda mempunyai zlib yang disusun tetapi 3.4 tidak.

    balas
    0
  • Batalbalas