gpt4 book ai didi

python - 如何检测zlib是否可用以及ZIP_DEFLATED是否可用?

转载 作者:行者123 更新时间:2023-12-03 16:12:52 25 4
gpt4 key购买 nike

zipfile.ZipFile documentationZIP_DEFLATED仅当 zlib 时才能用作压缩方法可用,但都不可用 zipfile模块规范也不zlib模块规范说明了何时 zlib可能不可用,或如何检查其可用性。
我在 Windows 上工作,当我安装任何版本的 Python 时,zlib模块可用。这在 Linux 中有什么不同吗?是否 zlib需要单独安装吗?
此外,检查 zlib 的正确方法是什么?可用性?是 import zlib将筹集 ImportError如果它不可用?
换句话说,这是使用zipfile的正确方法吗? ?

try:
import zlib
except ImportError:
zlib = None

compression = zipfile.ZIP_STORED if zlib is None else zipfile.ZIP_DEFLATED

with zipfile.ZipFile(file, mode, compression) as zf:
...

最佳答案

  • 在 Ubuntu 上,如果您使用 apt 安装 Python 3,例如sudo apt install python3.8 , zlib将作为依赖项安装。
  • 另一种方法是从源代码安装 Python 3。在这种情况下,您需要安装所有必备软件,包括 zlib1g-dev , (有时会忘记执行此操作)
    然后编译安装python为sudo make install .完整说明 here
  • 是的,如果 zlib不可用 import zlib将引发异常,例如
  • >>> import zlib 
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    ImportError: No module named 'zlib
    Python标准中有这样的代码示例
    图书馆。例如在 zipfile.py 中:
    try:
    import zlib # We may need its compression method
    crc32 = zlib.crc32
    except ImportError:
    zlib = None
    crc32 = binascii.crc32

    关于python - 如何检测zlib是否可用以及ZIP_DEFLATED是否可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63012515/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com