Rumah > Soal Jawab > teks badan
使用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
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 _sqlite3
Perkara ini hanya memerlukan _sqlite3.so
fail ini. zlib
Saya tidak tahu, maaf...
Cuba saja, secara teori boleh buat,
大家讲道理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.