• python免安装版(绿色版)制作


    一、实验环境

    1.Windows7x64_SP1

    2.pywinauto_0.6.7

    二、需求背景

    个人编写了一个软件安装器,用于一键安装开发软件及工具,该工具基于python + pywinauto。

    但问题来了,新电脑上未安装python和图像界面操作库pywinauto,难道先手动安装python + pywinauto,再运行软件安装器安装其他软件?

    有两种解决方式

    2.1 方式一:

    使用PyQt制作GUI界面,再使用pyinstaller打包为exe文件,该exe程序可以在未安装python的电脑上运行。

    使用该方式,最终发现PyQt库和pywinauto库冲突,可以正常打包,但exe程序运行报错,打开控制台窗口,窗口提示“ImportError:The 'appdirs' package is required”。

    本打算在github上向pywinauto的作者发帖提问,为方便其复现问题,手动编写图形化界面(未使用Qt设计师),程序运行正常!得出结论是Qt设计师编写的代码与pywinauto库存在冲突。

    2.2 方式二:

     使用绿色版python,在cmd中调用软件安装器,这样就可以安装python及相关软件和工具。

    三、实验步骤

    3.1 下载python release版

    下载链接请参考如下,下载其中的python-3.7.3rc1-embed-win32.zip

    https://www.python.org/ftp/python/3.7.3/

    解压后目录结构如下:

    聪明的小伙伴估计已经发现,https://www.python.org/ftp/python/ 可以下载所有版本的python

    3.2 安装pip

    下载get-pip.py文件至步骤3.1解压后的目录,get-pip.py文件下载方式参考如下:

    https://pip.pypa.io/en/stable/installing/链接另存为即可

    在当前目录下打开cmd,输入命令“python get-pip.py”并敲击回车运行命令,安装完成后,文件夹中会增加LibScripts两个文件夹

    3.3 修改python37._pth文件

    记事本打开python37._pth,去除import site的注释,最终修改如下:

    python37.zip
    .
    
    # Uncomment to run site.main() automatically
    import site
    

    3.4 安装lib

    3.4.1 查看已安装lib

    运行cmd,目录切换至python-3.7.3rc1-embed-win32,输入python.exe .Scriptspip3.exe list,结果如下:

    D:softwarepython-3.7.3rc1-embed-win32>python.exe .Scriptspip3.exe list
    Package    Version
    ---------- -------
    pip        19.2.1
    pywin32    224
    pywinauto  0.6.7
    setuptools 41.0.1
    six        1.12.0
    wheel      0.33.4
    

    3.4.2 安装新lib

    以安装django为例,输入python.exe .Scriptspip3.exe install django==1.10.1

    D:softwarepython-3.7.3rc1-embed-win32>python.exe .Scriptspip3.exe install django==1.10.1
    

    3.5 运行python

    D:softwarepython-3.7.3rc1-embed-win32>python
    Python 3.7.3rc1 (tags/v3.7.3rc1:69785b2127, Mar 12 2019, 21:42:06) [MSC v.1916 32 bit (Intel)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>>
    
  • 相关阅读:
    Hbase安装
    Spring bean和Java Bean的区别
    PyTorch初始教程1入门教程
    GeoMesa教程索引
    Applied Spatial and Spatiotemporal Analysis(应用空间和时空分析)Applied Spatiotemporal Data Mining时空数据挖掘
    分布式存储和分布式计算
    geospark geotrellis geomesa geowave的异同
    halconsort_contours_xld xid轮廓进行排序
    平衡树:为什么Redis内部实现用跳跃表
    TypeScript里string和String,真不是仅仅是大小写的区别
  • 原文地址:https://www.cnblogs.com/hester/p/11321884.html
Copyright © 2020-2023  润新知