windows环境安装lzo和python-lzo

  • 概述
  • 应用版本
  • Windows环境安装lzo
  • 安装python-lzo插件
  • 快速安装
  • 代码示例
  • 问题解析

近期因python项目开发中涉及到lzo文件解压,需要在windows环境下使用python-lzo压缩工具,但网上相关资料少之又少,遂自行研究相关安装步骤和使用方法。PS:涉及到lzo和python-lzo安装的很多坑。

概述

LZO 是致力于解压速度的一种数据压缩算法,LZO 是 Lempel-Ziv-Oberhumer 的缩写。LZO是一个无损的数据压缩库,相比于压缩比它更加追求速度。最初的库是用 ANSI C 编写、并且遵从 GNU通用公共许可证发布的。
开发人员常用的python环境,是搭建在windows系统上的,而要使用lzo压缩工具,就需要先安装lzo工具,再安装python-lzo插件(用于调用lzo),最后在python项目中import lzo,实现相关压缩解压缩操作。现将操作步骤整理如下,供大家参考。

应用版本

目前,lzo工具的最新版本是2.10,而python-lzo的最新版本是1.12,并且python-lzo对应版本已有一年多时间没有更新。笔者在安装时,由于开始没注意版本问题(均使用最新版本),导致多次编译安装失败,最后才发现是由于版本不支持。
因python-lzo插件长时间未更新,对lzo工具目前只支持到lzo-2.09,所以我们要安装工具的最新版本,也只能使用python-lzo-1.12lzo-2.09

另外需要说明的是,安装lzo工具时需要使用VisualStudio2010编译器,对C语言程序代码进行编译,因此需要安装好VisualStudio2010编译器。
注意:VisualStudio使用的是2010版编译器。使用2010版的原因是,lzo-2.09版本发布较早,使用2015、2016、2019等进行编译时,因编译器版本问题会导致编译出错,出现如下图的错误:

Windows环境安装lzo

  1. 下载lzo安装包

    访问地址(http://www.oberhumer.com/opensource/lzo/download/),下载lzo工具的安装包。

  2. 解压缩安装包
    在windows环境下使用解压缩工具,解压下载号的压缩包。

    文件夹B:包含了 DOS、windows 等系统的支持文件。
    文件夹examples:包含了示例程序代码。
    文件夹include:包含了公共头文件。
    文件夹minilzo:包含了LZO算法一种简化版。
    文件夹src:包含了LZO源码。
    文件夹util:包含了一些涉及到的脚本。

  3. 编译C程序
    linux环境中lzo编译安装方法,可参考lzo-2.09文件夹中的INSTALL文件;windows环境编译安装方法,可参考lzo-2.09\B\00README.TXT。
    在“开始”菜单中打开Visual Studio x64 Win64命令行工具,执行B\win64文件夹下的bat脚本,具体如下命令:

cd lzo-2.09
.\B\win64\vc.bat

当看到Building LZO was successful. All done.时,说明lzo工具编译安装成功。


  1. 测试是否成功
    在lzo安装的根目录下,执行如下命令:

lzotest.exe -mlzo COPYING

  1. 配置环境变量
    配置Windows系统的环境变量,并将lzo-2.09安装路径添加进Path。

安装python-lzo插件

  1. 下载python-lzo安装包

    访问地址(https://pypi.org/project/python-lzo/1.12/#files)下载python-lzo插件安装包。

  2. 解压缩安装包
    在windows环境下使用解压缩工具,解压下载好的压缩包。

  3. 安装python包
    在python-lzo的解压缩目录下,打开CMD命令行窗口,然后执行命令:python setup.py install。安装完成后,会在python安装目录\Lib\site-packages下,形成编译好的lzo.cp37-win_amd64.pyd文件(类似于dll文件)。

  4. 导包测试
    使用Python工具IDLE进行导包测试,如果import lzo没有报错,说明已成功编译安装。

快速安装

为了方便安装使用lzo工具,已将编译好的文件上传百度网盘,可直接下载使用。
lzo工具-https://pan.baidu.com/s/1jOOekUO00el_30e1ClBOkw,提取码:lnfs。解压缩后配置到系统环境变量中。
python-lzo插件-https://pan.baidu.com/s/136VQqA3AH4K6AozViAjNMA ,提取码:6ujo 。拷贝到python安装目录\Lib\site-packages下即可。

代码示例

python-lzo的具体使用方法,可参考文件python-lzo-1.12\tests\test.py中的内容。

import lzoa0 = lzo.adler32(src)
c =  lzo.compress(src, level)#压缩
u1 = lzo.decompress(c)#解压缩
a1 = lzo.adler32(u1)
o =  lzo.optimize(c)
u2 = lzo.decompress(o)
a2 = lzo.adler32(u2)

问题解析

  1. 找不到LZO_DIR
Traceback (most recent call last):File "setup.py", line 46, in <module>raise Exception("please set LZO_DIR to where the lzo source lives")
Exception: please set LZO_DIR to where the lzo source lives

报错原因:在执行python setup.py install命令时,python-lzo-1.12会去扫描系统的环境变量,查找LZO_DIR中配置的lzo工具安装路径,如果没有配置环境变量或环境变量不一致,会报上述错误。
另外,python-lzo-1.11之前的版本,LZO_DIR路径是写死在setup.py文件中的,需要手动进行修改。如下图所示:

  1. 找不到lzo.lib
LINK : fatal error LNK1181: 无法打开输入文件“c:\lzo\lzo-2.09\lzo.lib”
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Communit
y\\VC\\Tools\\MSVC\\14.24.28314\\bin\\HostX86\\x64\\link.exe' failed with exit status 1181

报错原因:在安装lzo模块时,选择的C程序编译器版本与lzo工具版本不匹配,导致编译结果中缺失了lzo.lib文件。

  1. 找不到lzo1x.h
lzomodule.c(35): fatal error C1083: 无法打开包括文件: “lzo/lzo1x.h”: No such f
ile or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Communit
y\\VC\\Tools\\MSVC\\14.24.28314\\bin\\HostX86\\x64\\cl.exe' failed with exit sta
tus 2

报错原因:lzo1x.h位于lzo工具安装目录include\lzo\下,python-lzo\lzomodule.c中可能存在应用错误,需要手动进行修改。如果不清楚相对路径,可将其改为绝对路径。

  1. 导包时找不到模块
>>> import lzo
Traceback (most recent call last):File "<pyshell#0>", line 1, in <module>import lzo
ModuleNotFoundError: No module named 'lzo'

报错原因:在执行python setup.py install命令时,相关C程序编译失败,导致未能生成python\Lib\site-packages\lzo.cp37-win_amd64.pyd文件。请检查安装版本是否匹配,进行编译时是否成功。

#参考资料
[1]LZO基本介绍与调试总结 https://blog.csdn.net/parasoft/article/details/84971788
[2]Windws安装python-lzo
https://kokufu.blogspot.com/2019/06/windows-python-lzo.html

windows环境安装lzo和python-lzo相关推荐

  1. Windows环境 安装dlib cv2(python) 总结

    文章来源于网络! window下查看1099端口被哪个进程占用的命令(window下命令也类&#20284;linux啊,netstat -aon|findstr "1099&quo ...

  2. Python3教程——1、Windows环境安装Python 3.8

    和小名一起学Python Python3教程--Windows环境安装Python 3.8  3.9 一.安装Python. 1.下载地址: https://www.python.org/downlo ...

  3. windows上安装Anaconda和python的教程详解

    一提到数字图像处理编程,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因 ...

  4. Windows 环境安装 RabbitMQ

    下载 Erlang 安装包并安装 首先访问 https://www.erlang.org/downloads 下载 Erlang 环境的安装包,查看你的 Windows 环境的系统类型选择 32位或者 ...

  5. PHP XAMPP windows环境安装扩展redis 致命错误: Class ‘Redis‘ not found解决方法

    PHP XAMPP windows环境安装扩展redis 致命错误: Class 'Redis' not found解决方法 参考文章: (1)PHP XAMPP windows环境安装扩展redis ...

  6. Windows环境安装MySQL步骤

    Windows环境安装MySQL步骤 前言 1.下载安装包 2.安装 3.工具连接 前言 说明:如果电脑上已经有MySQL数据库,就不用安装了,不管是Windows还是Linux或者Docker的,不 ...

  7. Anaconda python windows环境安装及完全排坑教程

    (本文篇幅较长,浏览器下搜索关键信息请直接使用ctrl+F关键词查找) 点击以下内容空降 Anaconda是什么? 1.0篇 anaconda初体验 1.Anaconda3的安装 pycharm部分( ...

  8. windows上安装Anaconda和python

    转载自:http://www.cnblogs.com/denny402/p/5121501.html 一提到数字图像处理编程,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开 ...

  9. 在windows下安装pyLint,对python进行语法检查

    操作的url=http://thinkhole.org/wp/2006/01/16/installing-pylint-on-windows/ 1.安装python.配置系统环境变量,增加python ...

最新文章

  1. 超级直播tv港澳台版2020_直播链接 2020年泉州足球超级联赛 第一轮
  2. [Ubuntu 12.10] Openstack 多节点安装--前期准备网络拓扑
  3. Ubuntu文件的复制、移动和删除命令
  4. 解决XManager连接到HP-UX时出现乱码的问题
  5. docker常用命令(总结)
  6. idea中Java项目连接服务器进行debug查看
  7. php rewrite url_PHP实现url重写和.htaccess
  8. plsql提示列快捷键_PLsql快捷键
  9. HTML5中的WebSocket
  10. 写一个java的网络数据包分析程序(一)
  11. 批处理顺序执行多条命令
  12. iptraf使用心得——如何查看网络流量
  13. 跨平台最好用的五笔输入法 Rime(鼠须管、小狼毫、中州韵) macOS Linux Windows 安装教程
  14. vue引入SuperMap超图 引入流程及报错处理
  15. 树莓派硬件编程——(一)用RPi.GPIO库输出信号
  16. mybatis事务处理
  17. HDU1269-迷宫城堡
  18. matlab 把连续函数离散,连续传递函数离散化
  19. CloudCompare:V2.6.3 菜单栏和工具栏 中英文对照 功能简述
  20. docker容器中安装jdk8,压缩包下载

热门文章

  1. mysql安装流程以及各类问题解决
  2. 利用Matlab将任意曲线旋转任意角度
  3. 2021“载歌在谷”线上春晚震撼来袭!
  4. python操作服务器(二)
  5. 使用nexus搭建maven私服教程详解
  6. 实现库房批次管理,先进先出原则(一次难忘的找bug经历)
  7. 计算机中心对临床质量考核标准,三级公立医院绩效考核第13项指标室间质量评价的解读...
  8. bind函数怎么用JAVA_socket编程之bind()函数
  9. 计算机大学生职业规划结课论文,大学生职业规划结课论文要求
  10. PCB 布局布线小技巧