导入错误:没有名为 zlib 的模块

问题描述 投票:0回答:2

我在运行 python 脚本在 S3 上发送文件时遇到此错误

File "docs/setup/s3transfer.py", line 121, in <module>
    main(*args, **kwargs)
  File "docs/setup/s3transfer.py", line 28, in main
    conn = boto.connect_s3(access_key, sceret_key)
  File "/usr/local/lib/python2.6/site-packages/boto/__init__.py", line 140, in connect_s3
    from boto.s3.connection import S3Connection
  File "/usr/local/lib/python2.6/site-packages/boto/s3/connection.py", line 30, in <module>
    from boto.auth import detect_potential_s3sigv4
  File "/usr/local/lib/python2.6/site-packages/boto/auth.py", line 34, in <module>
    import boto.utils
  File "/usr/local/lib/python2.6/site-packages/boto/utils.py", line 57, in <module>
    import gzip
  File "/usr/local/lib/python2.6/gzip.py", line 9, in <module>
    import zlib
ImportError: No module named zlib

虽然当我这样做时

sudo yum install zlib-devel

我明白了:

Loaded plugins: fastestmirror, versionlock
Loading mirror speeds from cached hostfile
 * base: centos.myfahim.com
 * epel: kartolo.sby.datautama.net.id
 * extras: centos.myfahim.com
 * updates: centos.myfahim.com
Package zlib-devel-1.2.7-17.el7.x86_64 already installed and latest version
Nothing to do

有人可以帮忙吗?

python boto
2个回答
0
投票

我知道这是一个较旧的问题,但如果有人像我一样发现这个问题,我对需要 python3.5 的旧脚本也有同样的问题。最近更新 MacPorts 后,它将我的 py3.5 升级到 3.5.10_5 我尝试了多个修复,但没有一个起作用。对于 MacPorts,激活特定版本将停用其他版本。所以,我尝试了以前的版本,脚本再次开始工作。

我跑了:

sudo port installed python35 
  The following ports are currently installed:
    python35 @3.5.10_4
    python35 @3.5.10_5 (active)

随后:

sudo port activate python35 @3.5.10_4
--->  Computing dependencies for python35
--->  Deactivating python35 @3.5.10_5
--->  Cleaning python35
--->  Activating python35 @3.5.10_4
--->  Cleaning python35

希望这对其他人有帮助。


0
投票

最近在 centos 7 上遇到了这个 这应该有帮助

sudo ./configure --enable-optimizations --enable-loadable-sqlite-extensions
sudo make
sudo make altinstall
© www.soinside.com 2019 - 2024. All rights reserved.