精华内容
下载资源
问答
  • 今天小编就为大家分享一篇python打包exe开机自动启动的实例(windows),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Python打包exe环境

    2017-09-29 15:20:41
    Python打包exe环境,经过测试,可在win10x64,xp-x86上面安装使用,打包出来的exe可在32位系统下运行, python2.7.14 32位,pywin32,pyinstaller-2.0 ,upx308w
  • python打包exe文件库

    2018-05-26 21:34:02
    当需要把自己写的程序移植到没有安装python的计算机时,需要将自身程序打包
  • 兼容版64位和32位系统的python打包exe,一般我们在64位操作系统上封装的python文件在32位系统上会出现不兼容的情况,用此方法解决
  • 解决win7系统下python打包EXE不能运行的升级包,解压之后,直接点击安装就可以了
  • 今天小编就为大家分享一篇python带参数打包exe及调用方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Python打包exe文件方法汇总【4种】

    万次阅读 多人点赞 2018-10-21 22:15:11
    title: Python打包exe文件方法 copyright: true top: 0 date: 2018-08-11 21:08:21 tags: 打包 categories: Python进阶笔记 permalink: password: keywords: description: 使用py2exe,pyinstaller,cx_Freeze,...

    title: Python打包exe文件方法
    copyright: true
    top: 0
    date: 2018-08-11 21:08:21
    tags: 打包
    categories: Python进阶笔记
    permalink:
    password:
    keywords:
    description: 使用py2exe,pyinstaller,cx_Freeze,nuitka对python文件进行打包,尝试进行混淆代码。

    “乔治是世界上最后一只平塔岛象龟,而我是世界上最后一个源家后裔,最后一只平塔岛象龟应该为了种族不灭努力地繁殖后代,最后一个源家后裔应该重振家族在黑道中的威望,但是乔治只是想回自己的水坑里去打滚,而我只是想去天体海滩上卖防晒油。”源稚生盯着恺撒的眼睛,“我就是这种人,其实蛇岐八家的黑道事业和秘党的使命对我来说都不重要,我的人生理想就是去卖防晒油。我跟你叔叔不是一种人。”

    Python作为解释型语言,发布即公开源码,虽然是提倡开源但是有些时候就是忍不住想打包成exe,不仅仅是为了对代码进行加密,而是为了跨平台。防止有些没有安装py环境的电脑无法运行软件。

    目录对python代码打包成exe的方式有4种,py2exe,pyinstaller,cx_Freeze,nuitka,分别对以上4种方法介绍,欢迎纠错和提供新的办法。

    py2exe

    介绍

    py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序。

    优点:

    1. 可以把python打包成exe

    缺点:

    1. 打包好的 exe只能在相同的系统下运行,比如你在XP系统用py2exe打包好的exe只能在XP上运行,在win7上肯定有问题,而且也是存在在别的XP机子上也可能不能运行,因为一些别的机子可能会缺少dll文件什么的,作者我当时之所以抛弃py2exe 也是因为这个原因;

    2. 打包的文件也需要打包同exe下的dll,和一些库的压缩包,不然exe根本跑不起来

    3. 打包时候报始终报RuntimeError: BeginUpdateResource错误,就需要拷贝dll文件。C:\WINDOWS\system32\python27.dll复制到dist目录

    4. 总之毛病一大堆,基本上已经舍弃了

    使用

    下载地址

    安装好后,准备进行打包

    准备一个文件x.py,这个x.py就是想要打包成exe。

    然后这x.py同目录下新建一个setup.py,内容如下:

    #coding=utf-8
    from distutils.core import setup
    import py2exe
    includes = ["encodings", "encodings.*"]
    #要包含的其它库文件
    options = {"py2exe":
      {
        "compressed": 1, #压缩
        "optimize": 2,
        "ascii": 1,
        "includes": includes,
        "bundle_files": 1 #所有文件打包成一个exe文件
      }
    }
    setup (
      options = options,
      zipfile=None,  #不生成library.zip文件
      console=[{"script": "x.py", "icon_resources": [(1, "Q.ico")] }]#源文件,程序图标
    )
    

    然后这cmd窗口下运行:

    python setup.py py2exe
    

    py2exe使用方法 (含一些调试技巧,如压缩email 类)

    pyinstaller

    PyInstaller除了win32平台外还支持Linux,Unix平台.py2exe的用法在前面的博文里已经有了,现在看看PyInstaller,pyinstaller是目前应用最多的python打包工具,也是我最常用的。

    PyInstaller本身并不是Python模块,所以安装时随便放在哪儿都行。

    优点:

    1. 可将python文件转成可执行文件
    2. 跨平台
    3. 输出的可以是单一目录,也可以是一个单独的打好包的可执行文件。py2exe貌似输出目录。
    4. 智能支持python的第三方模块如PyQt,外部数据文件等
    5. 支持EGG格式文件
    6. 可执行文件可以用UPX压缩,二进制压缩方式
    7. 支持控制台和视窗两种方式。
    8. 可以选择exe文件的图标 (Windows only)
    9. 支持 COM server (Windows only)

    缺点:

    1. import导入的问题

    pyinstaller是很智能的,只要指定了入口py文件,那么它就会根据代码自动查找需要导入的包。但是隐式导入的话,平常运行是没有问题的,举例:

    # test1.py
    from sqlalchemy import create_engine
    from sqlalchemy.orm import sessionmaker
     
     
    DB_CONNECT_STRING = 'mysql+pymysql://root:123456@localhost/study'
    engine = create_engine(DB_CONNECT_STRING, echo = False)
    DB_Session = sessionmaker(bind = engine)
    session = DB_Session()
     
    print('this is my test')
    

    运行这个ORM库的初始化引擎,是没有问题的,在console得到结果:
    this is my test

    那么我们开始打包,使用最简单的pyinstaller test1.py。打包完成后,在当前目录下有个dist文件夹,进入dist下的test1文件夹,然后打开cmd,运行这个exe,我们就会发现:

    提示: no model named ‘pymysql’

    这是怎么回事呢?那么问题来了,sqlalchemy这个库在初始化的时候是不需要显示导入引擎库的,它自己有一个create_engine()的函数来初始化,这个字符串是使用者根据规则来自己填写的。其实解决的方法很简单,我们只要在显式导入pymysql这个库即可。现在我们导入这个库:

    import pymysql
    

    重新打包一遍(重新打包的时候记得删除掉spec文件,否则会有缓存,或者是加上–clean选项清除掉),再次运行,现在就没有这个问题了。

    1. 多进程打包的问题

    官方的CPython存在一个GIL锁,这个锁的存在有很多优点,很多库都是线程安全的,单线程执行的效率也高。在python早期的一个版本中取消掉了GIL,代之以高粒度的锁来实现多线程,但是实际应用中单个线程的效率大大降低。故后来又将GIL这个锁还原回去,所以至今的python2也好还是python3中都会有这个锁。但是这个锁有很大一个问题,那就是效率问题,它导致了python仅仅只能利用一个core来进行数据的计算。所以后面为了弥补这个GIL带来的问题,专家们设计了multiprocessing库,gevent库等。前一个是多进程库,为了解决python用于数据密集型处理的情况;后一个用于异步IO处理的情况,基本原理就是在CPU时钟之间来回切换,简单的例子就是爬虫程序爬取网页的时候。假如有10个url,我们都要去GET它,实际上网络之间的延迟是大大高于计算机内部的,那么这个时间内计算机就切换到下一个。

    有时候运用多进程是必须的,这个替代不了,哪怕它占用资源很多。

    使用

    安装:

    pip install pyinstaller
    

    使用方法(例子):

    pyinstaller -D -p F:\Python27\Lib -i logo.ico mian.py
    

    -D:打包成多个文件
    -p:指定python安装包路径
    -i:指定图标,我的图标放在同目录下
    mian.py:要打包的文件,和图标放在同目录下了

    -D与-F一一对应,-F是打包成一个单独的文件。最后一排加上–noconsole,就是无窗口运行。

    如果py程序是多进程的话,使用pyinstaller打包会出现错误,这个时候只要加上一行代码

    在:
    if name==‘mian’:
    #新增
    multiprocessing.freeze_support()

    即可

    有的时候你加上图片后打包会出错,这是因为图标里面的格式出错了,需要用图片编辑软件重新对图片内部大小进行设置,这个百度一下吧~

    如果要加密混淆代码(其实没有用,一样可以反编译出你的源代码,但是聊胜于无吧)

    加上一行 --key=asfweakjhfksafkasdkdbas随便几个字符串

    好像要安装依赖包,根据提示安装即可

    cx_Freeze

    python中比较常用的python转exe方法有三种,分别是cx_freeze,py2exe,PyInstaller。py2exe恐怕是三者里面知名度最高的一个,但是同时相对来说它的打包质量恐怕也是最差的一个。pyinstaller打包很好,但是操作工序较为复杂,推荐cx_freeze,可以通过pip install cx-freeze 安装。–这是别人的描述,其实我觉得pyinstaller其实挺简单的

    使用

    安装方法:

    1. 打开cmd,输入pip install cx-freeze 后,会发现在python的Scripts文件夹下生成了三个文件
    2. 然后在cmd中,切换到Scripts路径下,输入 python cxfreeze-postinstall,会发现Scripts文件夹下又多了.bat文件,此时已经安装成功
    3. 继续在cmd下尝试输入 cxfeeeze -h 验证下,显示成功。

    提示:直接通过 pip install cx-freeze 安装,仍然出现错误时(找不到文件),最好去官网:网址手动下载相应版本的cx-freeze文件,放在Scripts文件夹下,手动双击安装,然后再运行cxfreeze-postinstall。(例如:我的python版本是3.4.3,下载cx_Freeze-4.3.3.win-amd64-py3.4的文件。注意,版本不对无法安装!)

    在cxfreeze的安装目录下即\Python34\Scripts,添加一个文件cxfreeze.bat(可用记事本)cxfreeze.bat内容如下:

    @ echo off
    C:\Python34\python.exe C:\Python34\Scripts\cxfreeze %*
    

    在该目录下输入czfreeze -h也可以查看安装情况(用pip install cxfreeze就可直接安装改第三方库)

    打包方法

    打包文件时要在Scripts文件夹路径下操作,文件的路径最好是绝对路径。例如:将 G 盘的 hello.py 打包到 G 盘的 123文件夹下:cxfreeze g:\hello.py --taget-dir g:\123 或者 cxfreeze g:\hello.py --taget-dir g:\123 --base-name=Win32GUI。加上–base-name=Win32GUI可以在运行exe时去掉cmd黑框。

    具体操作:

    首先在命令提示符中使用cd命令转换到所需要转换的python文件的目录中,因为转换后的dist文件夹会出现在命令提示符的当前目录中

    然后输入:

    cxfreeze --init-script=C:\Users\tangc\Desktop\alien_invasion\alien_invasion.py alien_invasion.py
    
    --init-script=后接绝对路径
    

    如果你的程序中有图片等资源,是需要根据程序中的相对路径加入到dist文件中,也要在.exe同目录中加入images的文件夹(图片资源)

    如果原.py程序使用了图片等素材,并且添加图片是相对路径(同一个文件夹下可以不使用绝对路径),打包文件后,需要将图片等素材拷贝一份放在打包后的文件夹下,否则运行.exe程序会找不到图片素材。

    如果原.py程序使用图片添加的是绝对路径,在本地电脑上运行时可能不会发现错误。但是你将打包后的文件发给另一台机器,运行.exe程序会报错,大概意思是“根据你写的绝对路径找不到图片等素材”,即使你在文件夹下拷贝了素材,但是绝对路径也是错误的,所以,最好使用上一种方法。

    注意:

    • 只能指定一个要打包的模块,也就是启动模块

    • 发布后,可执行文件执行路径不能有中文(最好也不要有空格)

    • 启动执行的文件中不要有下面这种判断,否则可执行文件执行会没有任何效果

        if __name__=='__mian__':
      
    • 将exe放到其他机子上运行,弹出“找不到msvcr100.dll“ ,手动将”msvcr100.dll“拷贝到dist目录下即可

    • 要去掉exe里的后面黑色控制台窗口就在前面的命令改成:
      cxfreeze C:\Users\restartRemote.py (需打包文件路径) –target-dir D:\pyproject (存放exe的目标文件夹路径)–base-name=win32gui

    nuitka

    Nuitka直接将python编译成C++代码 ,再编译C++代码产生可执行文件,完全不存在反向解析的问题,非常安全,而且由于可执行文件由C++编译而来,运行速度也会获得提升。

    但是我在打包中发现了一个文件,那就是在另一台电脑上无法运行…并且实际编译时需要近20分钟,编译的时候cpu持续100%

    不过如果只是自己的电脑上运行的话,还是挺好使的

    官方文档

    注意nuitka对python的某些语法有专门要注意的地方

    下载地址

    下载完后会提示安装编译c++代码的软件,使用的是gcc

    安装好有会有一个MinGW64的文件夹,比如我要打包一个back.py的文件,把这个py文件放在哪个目录下,常用命令如下

    python -m nuitka --recurse-all --standalone cc.py
    
    python -m nuitka --standalone back.py
    
    # 可以用的打包方式
    python -m nuitka --recurse-all --recurse-plugins=F:\Python27\Lib --remove-output --plugin-enable=enum_compat back.py
    # 带图标并且有窗口
    python -m nuitka --recurse-all --recurse-plugins=F:\Python27\Lib --remove-output --icon=logo.ico --plugin-enable=enum_compat back.py
    # 不带窗口不带图标
    python -m nuitka --recurse-all --recurse-plugins=F:\Python27\Lib --remove-output --plugin-enable=enum_compat --windows-disable-console back.py
    
    # 不删除辅助文件夹
    python -m nuitka --recurse-all --recurse-plugins=F:\Python27\Lib --icon=logo.ico --plugin-enable=enum_compat back.py
    
    # 其他可运行
    
    
    python -m nuitka --recurse-all --recurse-plugins=F:\Python27\Lib --standalone --remove-output --icon=logo.ico --plugin-enable=enum_compat back.py
    

    在编译的时候大概要挺长时间,并且cpu持续暴涨。

    速度…感觉确实变快了点…

    代码混淆

    你可以自己写混淆器,虽然说是防君子不防小人,但是…罢了不提了…

    我使用的是一个在线的代码混淆器,猜测代码会上传到那个服务器上面,所以用或不用看你的需求了

    地址

    注意:代码规范符合python3

    欢迎关注公众号:【安全研发】获取更多相关工具,课程,资料分享哦~
    在这里插入图片描述

    展开全文
  • python打包exe应用程序-PyInstaller

    万次阅读 多人点赞 2020-12-09 08:35:00
    1、PyInstaller简介PyInstaller是一个跨平台的Python应用打包工具,支持 Windows/Linux/MacOS三大主流平台,能够把 Python 脚本及其所在的...

    1、PyInstaller简介

    PyInstaller是一个跨平台的Python应用打包工具,支持 Windows/Linux/MacOS三大主流平台,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,从而允许最终用户在无需安装 Python 的情况下执行应用程序。
    PyInstaller 制作出来的执行文件并不是跨平台的,如果需要为不同平台打包,就要在相应平台上运行PyInstaller进行打包。

    2、PyInstaller安装

    pip install Pyinstaller
    

    有时候会安装失败?用以下方式安装

    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple Pyinstaller
    

    永久设置

    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    

    3. 准备需要的文件

    我们的tree文件夹放在c盘的

    fac.ico 程序的图标

    tree.py 是python文件

    4.使用Pyinstaller

    使用默认Pyinstaller打包方式

    打开cmd窗口,把路径切换到当前路径打开命令提示行,

    4.1 切换到英文输入法 win+R 打开命令窗口 输入cmd

    4.2 切换到项目目录

    一定要切换到项目目录再执行打包命令

    4.3 输入命令打包

     

    pyinstaller -F -i ./fac.ico tree.py
    

    输入命令后看见 successfully 那就是成功了

    4.4 看打包的结果

    这个时候多了很多文件和文件夹

    dist目录就是我们打包好的地方

    tree.exe 就是我们打包好的文件

    5.5 运行查看我们打包好的exe文件

    对,双击就可以打开

     

    5、参数的含义

    -F 表示生成单个可执行文件

    -w 表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧!

    -p 表示你自己自定义需要加载的类路径,一般情况下用不到

    -i 表示可执行文件的图标

    6. 附圣诞树源文件

    tree.py

    
    
    import turtle
    
    
    screen = turtle.Screen()
    screen.setup(375, 700)
     
    
    
    circle = turtle.Turtle()
    circle.shape('circle')
    circle.color('red')
    circle.speed('fastest')
    circle.up()
    
    
    square = turtle.Turtle()
    square.shape('square')
    square.color('green')
    square.speed('fastest')
    square.up()
    
    
    circle.goto(0, 280)
    circle.stamp()
    
    
    k = 0
    for i in range(1, 13):
        y = 30 * i
        for j in range(i - k):
            x = 30 * j
            square.goto(x, -y + 280)
            square.stamp()
            square.goto(-x, -y + 280)
            square.stamp()
    
    
        if i % 4 == 0:
            x = 30 * (j + 1)
            circle.color('red')
            circle.goto(-x, -y + 280)
            circle.stamp()
            circle.goto(x, -y + 280)
            circle.stamp()
            k += 3
    
    
        if i % 4 == 3:
            x = 30 * (j + 1)
            circle.color('yellow')
            circle.goto(-x, -y + 280)
            circle.stamp()
            circle.goto(x, -y + 280)
            circle.stamp()
    
    
    square.color('brown')
    for i in range(13, 17):
        y = 30 * i
        for j in range(2):
            x = 30 * j
            square.goto(x, -y + 280)
            square.stamp()
            square.goto(-x, -y + 280)
            square.stamp()
    turtle.up()
    turtle.goto(-20,-250)
    turtle.write("节日快乐")
    # 这里可以送上你的祝福
    turtle.hideturtle()
    turtle.done()
    
    
    

    7. 源文件下载

    链接:https://pan.baidu.com/s/1bpa1-4W_X2Pb_7MeAB4DTQ

    提取码:oq2w

     

    更多优秀文章

    展开全文
  • Python打包exe以后无法运行解决方案Pyinstaller 打包出EXE文件 运行一闪而过 没有错误 但是没有执行图画 也没有执行输入问题描述:历经千辛万苦终于打包出来exe文件,在解决各种错误后,打开exe文件后,命令窗口一...

    Python打包成exe以后无法运行解决方案

    Pyinstaller 打包出EXE文件 运行一闪而过 没有错误 但是没有执行图画 也没有执行输入

    问题描述:历经千辛万苦终于打包出来exe文件,在解决各种错误后,打开exe文件后,命令窗口一闪而过,已经确定没有错误,试过很多个文件,无论是Turtle画图的,还是输入数据的,都没有执行,因为完全是小白,不知道是exe运行后就是这样子,还是缺少什么软件,三方库。求教。开发环境是在Win10, Anaconda中Jupyter Notebook。

    网友解答:先打开cmd, 再输入"xxx.exe"执行, 然后把输出发一下.下不使用-F使用Pyinstaller -D模式打包下

    关于Python 打包成exe以后无法运行的问题

    最近写了个小项目,需要打包成exe文件运行,程序在Pycharm里面能够完美运行,可是,打包成Exe以后程序就会闪退,无法正常工作

    解决方法

    解决方法其实也比较简单,首先,需要说明的是,我写的程序需要调用外部文件,也就是配置文件,ini格式的,在源代码里面,我的程序调用配置文件用的是相对路径。问题也就出在这里。

    这个是我打包之前的文件的结构,可以看到ini文件和其他py文件待在一起:

    2019062714362718.png

    接下来在当前目录文件夹里面打开cmd,输入pyinstaller -F test.py进行打包

    打包以后的目录结构是这样的:

    2019062714362719.png

    打开dist文件夹,可以看到我们打包出来的exe文件:

    2019062714362820.png

    双击exe文件,发现程序闪退,没有正常工作(闪退,无法截图)

    接下来说解决方法,解决方法也很简单,正如刚才所说,我的程序调用了配置文件,而配置文件的调用路径是相对路径,程序里面写的是调用当前文件夹下的ini文件,那么,在exe所在的文件夹下面,运行exe程序,程序就会由于找不到配置文件,引起闪退的问题,解决方法很简单,将ini文件,放在和exe文件同一个文件夹下,就像下图:

    2019062714362821.png

    这样,再运行程序,你就会发现,程序能够正常运行啦!

    总结

    综上,对于exe闪退的问题,大家可以适当考虑是否是因为文件路径的问题导致的

    python打包生成的exe文件运行时提示缺少模块的解决方法

    事情是这样的我用打包命令:pyinstaller -F E:\python\clpicdownload\mypython.py打包了一个exe程序,但是运行时提示我缺

    少bs4模块然后我就去查pyinstaller的使用方法,找到pyinstaller有一个-p参数:

    1.设置导入路径(和使用PYTHONPATH效果相似).可以用路径分割符(Windows使用分号,Linux使用冒号)分割,指定多个目录.

    2.也可以使用多个-p参数来设置多个导入路径

    然后我找到bs4模块所在的目录E:\python\clpicdownload\venv\Lib\site-packages,路径的查找的方法是:

    用pycharm打开工程,菜单->setting->project->project Interpreter,把鼠标点到你想要包含的插件上,hint显示的就是所在目录

    155953GW942F-13029.jpg

    然后用pyinstaller -F -p E:\python\clpicdownload\venv\Lib\site-packages mypython.py这个命令打包,如果要包含多个目录,那

    就用分号隔开如:pyinstaller -F -p E:\python\clpicdownload\venv\Lib\site-packages;E:\python\clpicdownload\venv\Lib\site-packages mypython.py

    然后打包成功,现在可以运行了。

    以上这篇python打包生成的exe文件运行时提示缺少模块的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。

    以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

    展开全文
  • 需求分析 在我们写python程序的过程中,难免会遇到一些需求,比如给别人写一个小工具什么的 但是除了写Python的,绝大多数人电脑里都没有Python编译器,所以打包成exe,让...今天主要要记录的是python打包exe之后文
  • exe在运行时,会生成一个临时文件夹,__file__可获取当前py脚本在临时文件夹中的路径,根据项目目录结构修改关于资源路径的代码。比如项目pyproj资源文件C:\pyproj\abc.txt,脚本文件C:\pyproj\pys.py,脚本中路径C...
    1. pip install pyinstaller(大概这个吧,有点忘了)。
    2. 修改代码中的关于路径的地方。当exe在运行时,会生成一个临时文件夹,__file__可获取当前py脚本在临时文件夹中的路径,根据项目目录结构修改关于资源路径的代码。比如项目pyproj资源文件C:\pyproj\abc.txt,脚本文件C:\pyproj\pys.py,脚本中路径C:\pyproj\abc.txt改为os.path.dir(file)+‘abc.txt’。
    3. 打包。pyinstaller -F C:\pyproj\pys.py,生成pys.spec,build和dist文件夹(这两个文件夹可删,dist中其实已经生成了exe,但是运行会报错,因为资源找不到,如果没有用到资源的话是可以运行的)。
    4. 打开pys.spec。用记事本等打开pys.spec,内容大概这样:
    # -*- mode: python ; coding: utf-8 -*-
    block_cipher = None
    a = Analysis(['Main.py'],
                 pathex=['项目路径'],
                 binaries=[],
                 datas=[],
                 hiddenimports=[],
                 hookspath=[],
                 runtime_hooks=[],
                 excludes=[],
                 win_no_prefer_redirects=False,
                 win_private_assemblies=False,
                 cipher=block_cipher,
                 noarchive=False)
    pyz = PYZ(a.pure, a.zipped_data,
                 cipher=block_cipher)
    exe = EXE(pyz,
              a.scripts,
              a.binaries,
              a.zipfiles,
              a.datas,
              [],
              name='Main',
              debug=False,
              bootloader_ignore_signals=False,
              strip=False,
              upx=True,
              upx_exclude=[],
              runtime_tmpdir=None,
              console=True )
    
    1. 修改pys.spec。注意第6行datas=[],改为datas=[(‘abc.txt’,‘abc.txt’)],意思是将项目路径下的abc.txt文件加入目标exe中,在运行时放在临时文件的根目录下,名称为abc.txt,文件夹同理。如果有多个资源用逗号隔开,datas=[(‘res/bg.jpg’, ‘res’), (‘exam.db’, ‘.’)],列表里面是元组,左边是你要添加的filename(相对路径即可),右边是拷贝到项目中之后的文件夹名字。比如:(‘res/bg.jpg’, ‘res’) 中的 ‘res/bg.jpg’ 表示工程根目录下res文件夹下有bg.jpg图片,拷贝到项目之后作为res文件夹。
      (‘abc.txt’, ‘.’) 中的’exam.db’是工程根目录下的文件,’.'表示根目录(注意有点号),即拷贝到项目中的根目录下。
    2. 复制资源。把上一步用到的资源复制到和pys.spec同一个目录下。
    3. 再次打包。pyinstaller -F C:\pyproj\pys.spec注意是spec文件,会再次生成build和dist文件夹,exe生成在dist里,可以单独把exe放任意目录。
    4. 实践可行,无bug。

    注意:data里的资源要在和pys.py同级目录。
    另外,这个目录最好只有一个py文件,否则运行打包后的exe可能出现modulenotfound错误。

    展开全文
  • 目前python常用的是anaconda+pycharm的组合,使用起来确实非常方便,但是使用pyinstaller打包耗时很长,exe文件非常大,启动的很慢,这是因为打包的时候没有根据当前工程依赖库进行,而且将很多没有使用到的依赖打包...
  • Python打包exe,以及解决闪退

    千次阅读 多人点赞 2020-05-07 13:03:19
    Python打包exe 打开终端,中输入命令pip install pyinstaller后回车。安装失败尝试用管理员方式打开 输入命令 pyinstaller,回车显示安装成功。 3. 打开pycharm的底部的【Terminal】输入:pyinstaller --console ...
  • Python3打包exe文件(解决运行时出现黑窗口问题\color{red}{解决运行时出现黑窗口问题}解决运行时出现黑窗口问题) 安装pyinstaller pip install pyinstaller 打包教程 首先,切换到要打包程序的目录,比如我要...
  • 2,确定程序编辑器运行的python版本内携带了打包工具的模块 例如你使用pyintaller 打包,那你的当前使用的python 版本内就应该安装pyinstaller,我就是因为在命令界面直接pip pyinstaller导致无法运行的 3,确定...
  • 今天小编就为大家分享一篇python打包生成的exe文件运行时提示缺少模块的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 将代码打包exe后,运行exe程序报错 找不到pyqtgraph库 第一想法是看是否因为pip版本与pygraph或者pyqt5不匹配的问题,然后仔细查看pycharm里的setting里面python interpret中已下载的库,确实有些版本没更新 就先...
  • Python打包exe出现cmd窗口

    千次阅读 2019-11-25 21:50:49
    问题:在使用命令pyinstaller -F xx.py 打包生成exe文件后,双击运行总是出现cmd窗口。 执行打包命令后如下图所示: 解决方法:把文件名后缀改为.pyw,然后执行pyinstaller -F xx.pyw即可消除cmd窗口,如下图...
  • 去网上搜索一番看到有人提到可以用pipenv进行打包,这样可以省去pyinstaller将无关的大量库打包exe的问题。但是由于本次项目中需要使用wrf_python库,而该库的安装方式要求使用anaconda,因此很无奈,只能硬着头皮...
  • 主要给大家介绍了关于python pyinstaller打包exe报错的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
  • python 打包exe文件

    千次阅读 2019-05-30 10:52:54
    上一篇说了我自己做了一个定时截屏的工具,我想如果我可以打包exe文件,那我就可以单独放在桌面运行,不用进入程序启动运行就可以完成截屏工作了。 安装模块 1、pyinstaller 这里建议最好使用命令安装,手动下载...
  • 之前看很多人都在问,Python怎么打包exe可执行文件,雀氏有点多,那么我来了,给大家整一个Python打包exe可执行文件的究极教程! 当然,顺便再给它换个图标。 首先把你的代码准备好,尽量不要中文路径,容易报错。 ...
  • Python 打包exe,发现太大了该怎么解决? 使用pyinstaller 一开始不熟悉的时候把python程序打包exe基本都要500+M,后来发现是因为在anaconda环境下用pyinstaller打包会把anaconda所有的库都打包进去…… ...
  • 1)打包出来的exe会很大,会打包很多关联库; 2)而其中的一些关联库是没有用,而导入这些库会拖慢程序运行的效率。 解决:使用虚拟环境进行打包 1.使用pipenv 虚拟环境的应用可以用pipenv 安装pipenv :pip
  • 遇到该问题,可参考该链接python打包exe运行闪一下_解决pyinstaller打包exe文件出现命令窗口一闪而过的问题 总结:pyharm 导入的模块并没有安装到电脑的python中模块中去,这就导致了,在pyharm中能正常运行,在命令...
  • 打包程序exe 参数介绍 -F打包成一个独立的exe文件 -w 执行exe时不显示命令窗口 -i 创建exe的图标 -p 将自定义的py文件,打入包中 pyinstaller -F -w getBauduPhoto.py -i C:\Users\neusoft\Desktop\wy.ic.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 29,732
精华内容 11,892
关键字:

python打包exe

python 订阅
友情链接: Secretwriting.rar