zoukankan      html  css  js  c++  java
  • 使用Pyinstaller打包python py文件注意事项

    首先需要将cmd或者PowerShell目录cd 跳转到py脚本所在目录,然后直接执行 Pyinstaller -F即可完成程序的打包,其中我们关心它有哪些常见参数:

          输入参数的含义

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

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

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

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

    • 不过顺序上有要求,如果想要修改默认图标,正确的写法是:Pyinstaller -F -w -i "ico文件完整路径" "py文件完整路径”,否则经常编译出错。
    • 如果编译报"UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb6 in position 5650: invalid start byte",可尝试在powershell下输入:chcp 65001
    • 常见报错如下:
    • 171 INFO: checking Analysis
      171 INFO: Building Analysis because out00-Analysis.toc is non existent
      171 INFO: Initializing module dependency graph...
      187 INFO: Initializing module graph hooks...
      187 INFO: Analyzing base_library.zip ...
      5538 INFO: running Analysis out00-Analysis.toc
      5553 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable
        required by d:program filespython35python.exe
      6380 INFO: Caching module hooks...
      6380 INFO: Analyzing D:photo.ico
      Traceback (most recent call last):
        File "D:Program Filespython35Scriptspyinstaller-script.py", line 11, in <module>
          load_entry_point('PyInstaller==3.3.1', 'console_scripts', 'pyinstaller')()
        File "d:program filespython35libsite-packagesPyInstaller\__main__.py", line 94, in run
          run_build(pyi_config, spec_file, **vars(args))
        File "d:program filespython35libsite-packagesPyInstaller\__main__.py", line 46, in run_bu
          PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
        File "d:program filespython35libsite-packagesPyInstalleruildinguild_main.py", line 79
          build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
        File "d:program filespython35libsite-packagesPyInstalleruildinguild_main.py", line 73
          exec(text, spec_namespace)
        File "<string>", line 16, in <module>
        File "d:program filespython35libsite-packagesPyInstalleruildinguild_main.py", line 21
          self.__postinit__()
        File "d:program filespython35libsite-packagesPyInstalleruildingdatastruct.py", line 16
          self.assemble()
        File "d:program filespython35libsite-packagesPyInstalleruildinguild_main.py", line 41
          priority_scripts.append(self.graph.run_script(script))
        File "d:program filespython35libsite-packagesPyInstallerdependanalysis.py", line 201, i
          self._top_script_node = super(PyiModuleGraph, self).run_script(pathname)
        File "d:program filespython35libsite-packagesPyInstallerlibmodulegraphmodulegraph.py",
      t
          contents = fp.read() + ' '
        File "d:program filespython35libcodecs.py", line 321, in decode
          (result, consumed) = self._buffer_decode(data, self.errors, final)
      UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb6 in position 5650: invalid start byte
  • 相关阅读:
    人脸识别的一些网站
    41、过滤驱动程序
    13、ActiveX控件
    42、驱动程序调试
    20、宽字符串与字符串间的相互转换
    14、HOOK和数据库访问
    43、Windows驱动程序模型笔记(一)
    7、注册表读写的一个例子
    12、动态链接库,dll
    40、总结IRP,handling IRPs,Part II
  • 原文地址:https://www.cnblogs.com/new-june/p/9181395.html
Copyright © 2011-2022 走看看