python 生成exe文件

python 生成exe文件在windows下,可以使用pyinstaller打包python程序为exe可执行程序。1、安装pyinstaller在cmd命令行窗口运行以下命令安装pyinstallerpipinstallpyinstaller2、打包python程序在python程序所在目录,执行以下命令#切换到指定目录cd/dpath#正常打包命令pyinstaller-F-w-iico_pathxxx.py-F是将所有文件打成一个exe文件,一般是必写的(注意必须

大家好,又见面了,我是你们的朋友全栈君。

在windows下,可以使用pyinstaller打包python程序为exe可执行程序。

1、安装pyinstaller

在cmd命令行窗口运行以下命令安装pyinstaller

pip install pyinstaller

2、打包python程序

在python程序所在目录,执行以下命令

# 切换到指定目录
cd /d path
# 正常打包命令
pyinstaller -F -w -i ico_path xxx.py
  1. -F 是将所有文件打成一个exe文件,一般是必写的(注意必须是大写)
  2. -w 是程序运行时不显示cmd界面
  3. -i 修改生成的exe文件图标,可以不写(-i 不写的话 ico_path也别写)
  4. ico_path 是生成的exe文件图标位置
  5. py_path 是目标py文件位置

3、运行exe文件

打包完成后,在对应目录会出现build和dist文件夹,exe文件就出现在dist文件夹,直接运行即可。

4、外部文件

以我的chromedriver为例

打包生成exe文件后,依赖的文件还有chromedriver和谷歌浏览器(还需要版本一致)

所以在生成exe文件后,还需要将chromedriver和对应的谷歌浏览器版本一起

5、问题

5.1、’pyinstall’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

改为安装pyinstaller

5.2、exe点开之后就出现failed to execute script xxx

  1. 存在中文路径
  2. 使用pyinstaller时使用了-w命令与print冲突

5.3、反复运行本身

因为你开了进程,需要在main后面添加一句

multiprocessing.freeze_support()

5.4、Pyinstaller打包selenium去除chromedriver黑框问题

我的目录是

C:\Users\45906\AppData\Local\Programs\Python\Python37\Lib\site-packages\selenium\webdriver\common\service.py

将其文件中的75行修改

def start(self):
        """
        Starts the Service.

        :Exceptions:
         - WebDriverException : Raised either when it can't start the service
           or when it can't connect to the service
        """
        try:
            cmd = [self.path]
            cmd.extend(self.command_line_args())
            self.process = subprocess.Popen(cmd, env=self.env,
                                            close_fds=platform.system() != 'Windows',
                                            stdout=self.log_file,
                                            stderr=self.log_file,
                                            #修改前
                                            #stdin=PIPE)
                                            #修改后
                                            stdin=PIPE,creationflags=134217728)
  

这里注意,是chromedriver的命令行黑框,并不是window本身的命令行,windows的黑框在你打包的时候添加-w即可

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131113.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python生成exe可执行文件

    Python生成exe可执行文件将Python文件编译成exe可执行文件,可使用pyinstaller工具或py2exe工具实现。这里使用pyinstaller来说明。安装pyinstaller模块使用pip安装pipinstallpyinstaller生成exe文件准备好需要编译成exe的Python文件在这个Python文件的当前路径执行pyinstaller-Fxxx.py(xxx为要Python…

    2022年6月8日
    32
  • 面试官:Java的重写和重载有什么区别?[通俗易懂]

    面试官:Java的重写和重载有什么区别?[通俗易懂]老读者都知道了,七年前,我从美女很多的苏州回到美女更多的洛阳(美化了),抱着一幅“从二线城市退居三线城市”的心态,投了不少简历,也“约谈”了不少面试官,但仅有两三个令我感到满意。其中有一位叫老马,至今还活在我的微信通讯录里。他当时扔了一个面试题把我砸懵了:“王二,Java的重写(Override)和重载(Overload)有什么区别?”那年我二十三岁,正值青春年华,大约就是周杰伦发布《八度空间…

    2022年9月10日
    1
  • springcloud seata_seata github

    springcloud seata_seata github111

    2022年8月21日
    4
  • MyBatis的通俗理解:SqlSession.getMapper()源码分析

    MyBatis的通俗理解:SqlSession.getMapper()源码分析一、什么是MyBatis?直接看官方文档:https://mybatis.org/mybatis-3/zh/index.html。从上面我们了解到:1、MyBatis是一款优秀的持久层框架2、MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。3、MyBatis避免了几乎所有的JD…

    2022年6月15日
    25
  • ConcurrentHashMap 1.7和1.8区别

    ConcurrentHashMap 1.7和1.8区别ConcurrentHashMap与HashMap和Hashtable最大的不同在于:put和get两次Hash到达指定的HashEntry,第一次hash到达Segment,第二次到达Segment里面的Entry,然后在遍历entry链表(1)从1.7到1.8版本,由于HashEntry从链表变成了红黑树所以concurrentHashMap的时间复杂度从O(n)到O…

    2022年6月24日
    25

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号