zoukankan      html  css  js  c++  java
  • 【转】通过PyCharm 把Python 程序打包为exe

    通过PyCharm 把Python 程序打包为exe

    但是由于PyCharm 用了虚拟环境venv, 所有一些参数是有区别的,网上查询了很久没有查到这方面的信息,下面这些都是我自己探索出来的lin49940。

    步骤一,点击进入PyCharm 的输入终端Terminal

    步骤二,输入下面的语句, mypython.py 替换为你自己的程序名称

    pyinstaller -c -F mypython.py -p E:/dream/venv/Lib/site-packages

    这个命令是把程序打包为单独的一个exe文件, 打包成功后的文件在E:dreamdist 文件夹下,名称为mypython.exe。

    当然你也可以打包为多个文件的形式。

    -p E:/*******    就是pycharm 当前项目的虚拟环境了, 里面有编写程序使用到的包,这些包可能没有加入到系统的python 环境中,我们必须指定这个路径,依赖的包才能被打包程序加载到。

    pyinstaller 命令具体参数, 可以查看官方文档

    https://pyinstaller.readthedocs.io/en/stable/usage.html#options

    注意, 32位环境打包的exe 可以在32或64位的机器运行, 64位环境打包的exe 只能在64位的机器上运行。


     window 特有的(pyinstaller 3.0 才有)

              --win-private-assemblies

    这个参数是指将共享的程序集变为私有程序集,这样的话即使改变环境,编译的程序依然只会执行私有程序集而忽视不同环境下的共享程序集。这个参数尤其适合在一台机器上编译完成后在各种不同环境下执行。

           与之相近的还有一个参数

            --win-no-prefer-redirects

    这两个参数是在比较新的pyinstaller版本中才有的选项


    对于图形的开发工具, 不要使用 -F 当个文件的方式打包, 这样的话, 你需要去配置环境, 用默认的-D 文件夹的方式打包就行了。

    Window 运行, 是需要VC++ redist 的支持的,并且版本和(32位或64位)必须对, 不管是python 的wxPython 还是 c#的WPF 也是一样的,使用 C#app 能使用 Chromium 内核的CefSharp 从V65 版本开始就要VC++ Redist2015 才行。

    缺少的一些如api-ms-win-crt-runtime-l1-1-0.dll 这些, 其实就是没有指定的 VC++ redist 版本(最低版本,一般有高版本的也行), 绝对不要自己下载或者去其他电脑拿这些dll 文件过来,很可能不兼任导致的莫名其妙的问题(CLR20R3,Error loading Python DLL loadLibrary Pyinstaller FormatMessageW failed 等奇怪的问题),安装对应版本的VC++ Redist 才是根本解决方法。

    VC++ redist 绝对绝对绝对要去微软官网下载, 不要到国内一些下载网站下载,他们的东西杂七杂八的,有点小问题就能坑死你。

    https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads

  • 相关阅读:
    python变量赋值(可变与不可变)
    cx_Oracle读取中文乱码问题(转载)
    Lookandsay sequence(看读序列)
    oracle 效率之 not in 和exists
    python encode和decode函数说明
    PILpython的图像处理模块
    iOS中判断一个文件夹是否存在
    Validate Email Account using Regular Expression in ObjectiveC
    UILabel描边
    获取app当前可用的剩余内存
  • 原文地址:https://www.cnblogs.com/liangqihui/p/13783969.html
Copyright © 2011-2022 走看看