@网络老鼠技术小屋

网络老鼠技术小屋-涂飞平的博客空间

制作绿色版Python应用

1 月前 0

前几天一个朋友给我电话,需要做一个能自动登录特定网页的简单工具,只要可以后台自动执行即可。这是一个典型的爬虫应用,我第一个反应是想通过编写一个Chrome插件帮他搞定这个事情,但考虑到“后台”运行这个特殊需求,最后还是决定采用Python来完成这个任务。
由于朋友并非IT专业人士,电脑不一定会安装Python(当然,安装了其也不一定知道),也不能直接给他一个Python安装包让其安装,所以决定将Python做成绿色版,随文件夹发布,不影响其本地环境,即使其有Python不同版本,也不会冲突。
本文将制作绿色版本的过程及注意点细说一下,以便有需要的朋友借鉴。
1、安装Python
这里需要注意的是,将Python安装为当前用户使用,这样,Python的所有相关文件,都会安装到本地目录,如果安装为所有用户,部分文件(如msvcr90.dll)会安装到Windows的系统目录下面,不便于绿色版文件收集。
foruser.png2、安装依赖
由于朋友需要的小工具需要依赖其他库,如 httpie 库(一个很好用的http请求库),所以必须在当前环境中将其配置好

pip install httpie
如果还有其他依赖,都是用相同的方法用pip在本地安装好。

3、编写自己的代码
开始编写小工具代码,这里直接编写python文件。很简单,不做特别说明。使用命令运行,完成功能开发和调试。

python autologin.py
4、环境整理
Python环境有了,小工具代码也完成了,现在将其整合到一起,最终目的是在本机卸载Python环境后,小工具也能run起来。

  • 建立发布目录并拷贝Python目录到发布目录中
  • dir.png

  • 将%USER%\AppData\Roaming\Python\Python27\site-packages中的文件拷贝到安装包Python\Lib\site-packages里面
  • sitepackages.png
    这是由于pip安装三方包的时候,32位系统的python会将依赖部署到用户目录下,64位的Python不会部署到这里,直接安装到Python安装目录/Lib/site-packages里面。

  • 修改部分setuptools生成的Python/Scripts/*.exe文件
  • stub.png
    因为在setuptools生成Scripts下面的PE格式(exe)的插桩程序的时候,会将当前Python.exe连带路径写入里面,如果不修改,到新的机器(没有这个目录),会到这个目录下面找Python,就会报错!
    这里使用高级编辑器(比如Notepad++或者UE都行)直接修改为#!python.exe 即可,这步不是必须的,如果需要用到Python/Scripts里面生成的相关工具,才需要修改

  • 编写start.bat文件,配置Python环境和运行小工具
  • 这部分就是通过bat脚本,将当前目录Python目录设置到系统PATH中,然后用Python启动写好的小工具。
    代码如下
    @REM OFF
    @set ORIDIR=%CD%
    @cd /d %~dp0
    @set PATH=%CD%/Python;%CD%/Python/Scripts;%PATH%
    @python autologin.py
    @cd /d %ORIDIR%
    @pause
    5、测试小工具
    将本地的Python环境卸载(或者将Python安装目录改名,让系统找不到Python),然后进入小工具目录,运行start.bat ,不显示找不到Python,能够工作了,就成功了!
    run.png小提示:如果不确定目标用户操作系统的版本(32位还是64位),为了保险起见,可以打包32位的Python环境。

    编写评论