精华内容
下载资源
问答
  • 怎么打包多个文件
    千次阅读
    2020-02-10 15:27:58

    解决的问题

    在项目开发过程中,用户需要下载多个文件,如果单个文件下载,用户体验不好,可以把用户的文件上传到一个目录中,下载时将文件夹的多个文件压缩成zip包,下载zip包。

    本文用用laravel实现多文件一次性下载

    由于实现比较简单,直接上代码吧

        /**
         * @param Request $request
         * @return ResponseFactory|\Illuminate\Http\Response|BinaryFileResponse
         */
        public function downloadfiles(Request $request){
            $dir = $request->input('dir', 'uploads/20200210');
            if($dir){
                $path = public_path($dir);
                $zip_name = 'files.zip';
                $zip = null;
                $count = 0;
                //迭代器
                $files =  new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path));
                foreach ($files as $name => $file){
                //排除文件夹
                    if (!$file->isDir()) {
                    //是否实例化了ZipArchive对象,
                        if(!$zip) {
                            $zip = new ZipArchive();
                            //打开zip包
                            $zip->open($zip_name, ZipArchive::CREATE | ZipArchive::OVERWRITE);
                        }
                        //获取文件的绝对路径
                        $filePath = $file->getRealPath();
                        //把文件添加的zip包中
                        $zip->addFile($filePath, $file->getFilename());
                        $count++;
                    }
                }
                if($zip){
                //关闭zip包
                    $zip->close();
                }
                if($count){
                    return response()->download($zip_name);
                }else{
                 return response('', 404);
                }
            }else{
                return response('', 404);
            }
        }
    
    更多相关内容
  • 详解 pyinstaller 打包多个py文件

    千次阅读 2022-06-10 18:08:13
    打包多个py文件 Failed to execute script 'simple' due to unhandled exception! NameError: name 'exit' is not defined

    前言

    最近有个需求要把python项目打包成可执行程序运行,看了很多帖子,大多数博主都采用pyinstall 打包,看着也不难,本以为很简单的事情,对于我这个新手来说也折腾了2个多小时吧,记录下遇到的坑,和大家分享,希望能给予你们帮助,少走弯路。

    安装pyinstall

    pip install pyinstaller

    实验项目结构

    • 在sampleproject目录下执行tree /f 查看文件结构
      在这里插入图片描述
    pyinstaller -F  -c simple.py -p __init__.py -p test_install.py
    

    打包多个py文件的命令

    pyinstaller [主文件] -p [其他文件1] -p [其他文件2] --hidden-import [自建模块1] --hidden-import [自建模块2] 
    

    其中sample.py是主程序入口文件,其他.py文件是自建模块(test_install.py)。所以在执行下面命令:
    pyinstaller -F -c simple.py -p __init__.py -p test_install.py

    执行完成后会产生2个文件夹build,dist和一个文件simple.spec

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dOcJPhPV-1654855681361)(https://note.youdao.com/yws/res/19343/WEBRESOURCEf1746fab0bf91ead913da015126eec9c)]

    进入exe目录并成功执行exe程序
    在这里插入图片描述

    OK 这样就完成了打包的程序,事实上,我并不是这么顺利,中间也遇到些问题

    遇到的问题 Failed to execute script ‘simple’ due to unhandled exception!

    首先看下py文件的内容,内容瞎写的,只是为了测试!!!

    test_install.py

    def install_test():
        print('install test!')
    

    simple.py 调用 test_install.py 中的方法

    • 方式一
      import test_install
      ...
      test_install.install_test()
      
    • 方式二
       from test_install import install_test
       ...
       install_test()
      

    这四种方式用python simple.py 都是能通过的,然而方式一和方式二打包后都有报错ModuleNotFoundError: No module named ‘test_install’
    [37320] Failed to execute script ‘simple’ due to unhandled exception!

    解决方法

    原因 install_test 是在sample包下,导入路径要写上父包的路径

    • 方式三
      from sample.test_install import install_test
      ...
      install_test()
      
    • 方式四
      from sample import test_install
      ...
      test_install.install_test()
      

    遇到的问题 NameError: name ‘exit’ is not defined

    • 解决方法:在simple.py中使用的exit()替换为sys.exit()

    • 出错的原因exit 用于给交互式 Shell 返回值,而 sys.exit 是用于程序内部

    Python 中的 exit() 和 sys.exit() 的区别

    exit is a helper for the interactive shell - sys.exit is intended for use in programs.

    The site module (which is imported automatically during startup, except if the -S command-line option is given) adds several constants to the built-in namespace (e.g. exit). They are useful for the interactive interpreter shell and should not be used in programs.

    Note that there is a third exit option, namely os._exit, which exits without calling cleanup handlers, flushing stdio buffers, etc. (and which should normally only be used in the child process after a fork()).

    对于上面的引用的理解:

    • exit()/quit(), 抛出 SystemExit 异常. 一般在交互式 Shell 中退出时使用.
    • sys.exit(n) 退出程序引发 SystemExit 异常, 可以捕获异常执行些清理工作. n 默认值为 0, 表示正常退出. 其他都是非正常退出. 还可以 sys.exit(“sorry, goodbye!”); 一般主程序中使用此退出.
    • os._exit(n), 直接退出, 不抛异常, 不执行相关清理工作. 常用在子进程的退出.

    参考链接

    文中测试项目地址
    python打包后,执行报错:NameError: name ‘exit‘ is not defined
    Pyinstaller打包多个.py文件
    python相对路径导入bug解决:ImportError: attempted relative import with no known parent package

    展开全文
  • 使用pyinstaller打包多个和单个python文件

    万次阅读 多人点赞 2021-10-03 20:06:00
    一、打包多个 1、将需要打包的项目为anjuke_sd目录下的所有python文件,其中excute_main.py为主文件。 2、生成主函数对应的spec文件 命令:在anjuke_sd路径下使用:pyi-makespec excute_main.py 如下图已经生成...

    一、打包多个

    1、将需要打包的项目为anjuke_sd目录下的所有python文件,其中excute_main.py为主文件。
    在这里插入图片描述
    2、生成主函数对应的spec文件
    命令:在anjuke_sd路径下使用:pyi-makespec excute_main.py
    在这里插入图片描述
    如下图已经生成excute_main.spec文件。
    在这里插入图片描述
    3、修改spec文件:加入需要打包的所有python文件,同时确保以下两项包含该项目的路径
    在这里插入图片描述
    4、对spec文件进行pyinstaller安装
    命令:pyinstaller excute_main.spec
    在这里插入图片描述
    若显示如下所示则证明打包成功。
    在这里插入图片描述
    此时项目下多了两个目录,进入dist目录,找到dist路径下后缀名为exe的文件。这里为dist下目录excute_main下的excute_main.exe。
    在这里插入图片描述
    在这里插入图片描述
    打包成功!

    二、打包单个文件

    1、还是进入你需要打包的文件的路径,执行命令:pyinstaller -F 1.py,如下图所示。
    在这里插入图片描述

    ps: -F参数表示覆盖打包,这样在打包时,不管我们打包几次,都是最新的,这个记住就行,固定命令。

    出现问题:
    在这里插入图片描述
    assert mpl_data_dir, “Failed to determine matplotlib’s data directory!”
    AssertionError: Failed to determine matplotlib’s data directory!
    解决:
    找到该文件:
    D:\ProgramFile\Python38\Lib\site-packages\PyInstaller\hooks
    修改hook-matplotlib.py文件,按照如下代码进行修改,再次打包就可以正常

    import matplotlib
     
    mpl_data_dir = matplotlib.get_data_path()
     
    datas = [
        (mpl_data_dir, "matplotlib/mpl-data"),
    ]
    

    在这里插入图片描述

    2、执行完毕之后,会生成几个文件夹,如下图所示。
    在这里插入图片描述
    点进去就看到了exe,点击运行

    在这里插入图片描述
    OK!
    在这里插入图片描述
    3、默认打包图片,如下图所示。

    在这里插入图片描述

    加上 -i 参数之后,如下图所示,会形成一个类似风力发电机的logo图案。

    在这里插入图片描述

    ps:程序路径最好全部都是英文,否则肯能会出现莫名其妙的问题

    总结命令

    Pyinstaller -F setup.py 打包exe

    Pyinstaller -F -w setup.py 不带控制台的打包

    Pyinstaller -F -i xx.ico setup.py 打包指定exe图标打包

    平常我们只需要这三个就好了,足够满足所有需求了。

    展开全文
  • 尝试了很种Python打包为exe可执行文件的方式,通过总结,得出一种最简洁、最有效的打包方式分享给大家!

    使用概述:

    尝试了很多种Python打包为exe可执行文件的方式,通过总结,得出一种最简洁、最有效的打包方式分享给大家!

    步骤一(准备好安装文件):

    准备好将要打包的工程文件(夹)
    在这里插入图片描述
    如上图所示,首先将主文件UI.py和文件夹./file放在一级文件夹./YW下方,如果有同级其他.py文件与UI.py放在同一级文件夹即可!

    然后将其他类型的文件统一放入file文件夹当中(例如txt\jpg\csv\png\ico等其他类型文件)


    步骤二(下载安装Pyinstaller):

    先进入控制台,通过cd指令进入到项目当前文件夹
    在这里插入图片描述
    然后输入镜像下载:

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

    下载安装后即可!


    步骤三(生成.spec文件):

    .spec文件为安装配置文件,作用是对可执行文件进行配置!

    在Pycharm编译器Terminal窗口当前项目路径中输入如下指令:

    pyi-makespec UI.py
    

    在这里插入图片描述
    随后即可在项目文件夹中生成UI.spec文件!
    在这里插入图片描述


    步骤四(配置.spec文件):

    用记事本打开UI.spec文件:
    在这里插入图片描述

    1、如果还有其他.py文件则在Analysis后面添加,例如我这里添加了个同级文件’tmp.py’

    2、在pathex后手动输入文件工程的绝对路径

    3、在datas后添加其他文件夹’file’,注意括号和文件夹名称(这个是设置其他数据的存储路径)

    4、将consolo = True设置为consolo = False,目的是为了消除封装好exe执行时出现控制台黑框!


    步骤五(配置完成进行封装):

    在Pycharm编译器Terminal窗口当前项目路径中输入如下指令:

    pyinstaller -D -w  UI.spec
    
    

    在这里插入图片描述

    封装完成:
    在这里插入图片描述


    封装结果:

    出现三个文件夹:
    在这里插入图片描述
    点击进入dist:
    找到可执行文件
    在这里插入图片描述
    点击运行:
    在这里插入图片描述
    成功运行!

    展开全文
  • 我们有很多文件需要打包成 ZIP 和 7z 压缩包,我们平常最常见的就是自己手工将一些文件打包成一个独立的 ZIP 和 7z 压缩包,但是我们有时候也需要将很多个文件单独打包成单个 ZIP 和 7z 压缩包。 比如说我们有 100 ...
  • Linux中打包多个文件

    千次阅读 2019-01-21 15:42:41
    1、压缩  将文件test分包压缩成1000M 的文件:  tar czf - test | split -... 将第一步分拆的多个包解压:  cat test.tar.bz2* | tar -jxv ---------------------  作者:yuan892173701  来源:CSDN  原文...
  • 可以用来压缩打包单文件、多个文件、单个目录、多个目录。 Linux打包命令_tar tar命令可以用来压缩打包单文件、多个文件、单个目录、多个目录。 常用格式: 单个文件压缩打包 tar czvf my.tar.gz file1 多个...
  • 用pyinstaller打包多个python文件及问题解决(较全总结)1.先整理文件,方便打包2.生成.spec文件并且修改.spec3.生成可执行文件4.报错及处理5.exe运行的时候不要弹出console 1.先整理文件,方便打包 (1)首先我要...
  • 最近需要将python写的程序打包分发给其他同事使用,因为之前对老代码进行了重构,将工具类函数都抽到一个统一的包路径utils下,打包时后运行程序时出现了找不到这个包的...在main.py函数中引用了上述的2个文件: ...
  • 可以用来压缩打包单文件、多个文件、单个目录、多个目录。 Linux打包命令_tar tar命令可以用来压缩打包单文件、多个文件、单个目录、多个目录。 常用格式: 单个文件压缩打包 tar czvf my.tar.gz file1 多个文件压缩...
  • Linux系统中打包文件的命令详解

    千次阅读 2021-05-08 22:39:56
    Linux系统中遇到要打包...Linux系统中打包文件的命令详解tartar 的选项与参数非常的!我们只讲几常用的选项,更选项您可以自行 man tar 查询啰![root@www ~]# tar [-j|-z] [cv] [-f 建立的档名] filename... &l...
  • 我们有很多文件夹需要打包成 ZIP 和 7z 压缩包,我们平常最常见的就是自己手工将一些文件夹打包成一个独立的 ZIP 和 7z 压缩包,但是我们有时候也需要将很多个文件夹单独打包成单个 ZIP 和 7z 压缩包。 比如说我们...
  • Pyinstaller打包多个.py文件

    万次阅读 多人点赞 2018-07-09 00:19:55
    一、多文件打包为单一文件...多个.py文件打包命令格式如下:pyinstaller [主文件] -p [其他文件1] -p [其他文件2] --hidden-import [自建模块1] --hidden-import [自建模块2]三、使用pyinstaller打包的时候,仅打包...
  • webpack4打包多个js文件

    万次阅读 2018-07-19 16:36:15
    1.多个js文件不合并打包(分别打包) 配置文件./conf/webpack.dev.js const path = require("path"); module.exports = { mode: "development", //打包为开发模式 // 入口配置的对象中,属性...
  • 我指的是 **多个 .py 文件**。包括它的附件,比如.png格式的图片。有没人知道?
  • 最近用python写了一界面化程序,想要利用pyinstaller打包成EXE文件,所以用这篇文章记录一下。 文章目录安装库参数介绍指令注意!!!!!!!! 安装库 1、安装pywin32 下载安装文件:查找到跟自己适用的python...
  • pyinstaller打包——将多个py文件+图片打包(最细教程)

    千次阅读 多人点赞 2020-07-08 16:04:25
    最近无聊用python自带的tk写了界面,想把它整成exe程序,在最后要打包文件时,遇到了需要将图片打包的一些问题。 然后也是查了一会,教程大多不是很容易理解的那种,所以出更容易懂的小白教程。 具体方法 打包...
  • java代码实现打包多个文件下载功能

    千次阅读 2018-10-23 18:23:24
    //传入对应的需要打包的file 集合对象` //文件打包下载 public static HttpServletResponse downLoadFiles(List files, HttpServletRequest request, .../*这集合就是你想要打包的所有文件, * 这里...
  • python封装打包多个py文件

    千次阅读 2020-11-19 11:03:36
    环境:Windows 7 方法一、直接运行pyinstaller xx.py yy.py zz.py 第一xx.py是主文件。 方法二、 ...1.运行命令pyi-makespec xx.py ...2.打开xx.spec文件 ...3.打包spec文件。运行命令pyinstaller -d xx.spec
  • 文章目录tar 批量打包一个文件夹下的多个目录(tar批量打包与解压)原始文件结构批量打包批量解压 tar 批量打包一个文件夹下的多个目录(tar批量打包与解压) 对一个目录下的所有文件夹进行打包,当文件加比较少的...
  • 有时候,我们发布一个npm包时,需要打包多个文件,可能对应不同的功能。 这时就需要知道如何配置webpack打包出多文件,原理是通过配置多入口和多出口来实现。 一、打包成单文件配置 先看一下原来的打包单文件...
  • Python多文件打包为exe

    千次阅读 2021-09-23 22:53:25
    多个.py文件 文本文件夹:data,含一个.pkl和xml文件 venv:环境所需的包,如imutils、numpy、pyqt5等 项目文件路径为 C:\Users\ray\Desktop\auto_rec_new(供下面参考使用) 2 生成.spec文件 按Shift同时...
  • 使用Pycharm将多个py文件打包成一个可运行并且可安装文件第一步:安装pyinstaller第二步:打包生成exe文件第三步:造成一个类似安装程序的东西 第一步:安装pyinstaller 先打开命令行,打开pycharm在左下角: 打包...
  • jsZip将多个文件压缩成一个压缩包

    千次阅读 2022-01-29 10:10:43
    在项目开发中,搭档大佬要做一个断点续传的功能,让我帮忙研究一下前端将多个文件压缩成一个压缩包的方法,所以就有了这篇文章。 我的demo是写在vue中的,所以首先要有一个vue环境,才能进行接下来的步骤。那么下面...
  • 版权声明:转载请注明作者(独孤尚良dugushangliang)出处:...如下图所示是多个文件打包所得,有许多PYD文件、文件夹、DLL文件等,其中会有一个exe文件,这...
  • Java将多个文件打包成ZIP并下载

    千次阅读 2021-10-29 11:44:02
    Java将多个文件打包成ZIP并下载 需求是多个文件需要同时打包成zip压缩文件并下载到本地,首先我需要的是知道下载文件的路径。我有一个专门的sys_file_info表,表中有对应的文件路径。业务表中的文件地址放的就是文件...
  • 需要同时下载多个文件时,大部分浏览器都不支持多文件同时下载,可以采用JavaScript脚本动态生成多个链接,但是需要用户多次点击下载对话框,用户体验不好,并且有些浏览器还不兼容。此时多文件打包下载帮你解决这个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 584,698
精华内容 233,879
关键字:

怎么打包多个文件