Li FRANK 2024-04-22 10:08 采纳率: 68.9%
浏览 37

Python编译EXE后再Windows7系统运行返回错误如何处理

Python程序编译EXE后,在Windows10运行没有报错,在Windows7运行报错,内容如下:

Python path configuration:
  PYTHONHOME = 'C:\Users\ADMINI~1\AppData\Local\Temp\_MEI71122'
  PYTHONPATH = (not set)
  program name = 'C:\Users\Administrator\Desktop\\u81ea\u52a8\u5173\u7535\u5f71.
exe'
  isolated = 1
  environment = 0
  user site = 0
  safe_path = 1
  import site = 0
  is in build tree = 0
  stdlib dir = ''
  sys._base_executable = 'C:\\Users\\Administrator\\Desktop\\\u81ea\u52a8\u5173\
u7535\u5f71.exe'
  sys.base_prefix = 'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\_MEI71122'
  sys.base_exec_prefix = 'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\_MEI71122'
  sys.platlibdir = 'DLLs'
  sys.executable = 'C:\\Users\\Administrator\\Desktop\\\u81ea\u52a8\u5173\u7535\
u5f71.exe'
  sys.prefix = 'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\_MEI71122'
  sys.exec_prefix = 'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\_MEI71122'
  sys.path = [
    'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\_MEI71122\\base_library.zip',
    'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\_MEI71122\\lib-dynload',
    'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\_MEI71122',
  ]
[5192] Failed to start embedded python interpreter!
Fatal Python error: init_fs_encoding: failed to get the Python codec of the file
system encoding
Python runtime state: core initialized
Traceback (most recent call last):
  File "<frozen importlib._bootstrap_external>", line 1437, in _path_importer_ca
che
KeyError: 'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\_MEI71122\\base_library.zi
p'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<frozen zipimport>", line 92, in __init__
KeyError: 'C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\_MEI71122\\base_library.zi
p'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1138, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1078, in _find_spec
  File "<frozen importlib._bootstrap_external>", line 1504, in find_spec
  File "<frozen importlib._bootstrap_external>", line 1473, in _get_spec
  File "<frozen importlib._bootstrap_external>", line 1439, in _path_importer_ca
che
  File "<frozen importlib._bootstrap_external>", line 1415, in _path_hooks
  File "<frozen zipimport>", line 94, in __init__
  File "<frozen zipimport>", line 517, in _read_directory
  File "<frozen importlib._bootstrap_external>", line 104, in _path_join
SystemError: Negative size passed to PyUnicode_New

如何解决?谢谢

  • 写回答

6条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-22 10:08
    关注

    引自免费微信小程序:皆我百晓生

    这个错误看起来是由于在Windows 7上运行时,Python解释器无法找到正确的文件系统编码,这通常发生在将Python程序打包成可执行文件(.exe)并试图在不同版本的操作系统上运行时。

    为了解决这个问题,你可以尝试以下几个步骤:

    1. 确保你的Python环境与目标操作系统兼容:确保你在Windows 7上使用的Python版本与你用来打包EXE的Python版本相同或至少兼容。如果你是在Windows 10上打包的,可能需要下载适用于Windows 7的Python版本,并且使用那个版本的Python进行打包。

    2. 使用合适的工具打包:确保你使用的是支持跨平台打包的工具,例如cx_FreezePyInstallerpy2exe等。这里以PyInstaller为例,因为它支持多种操作系统和Python版本。

    3. 配置PyInstaller:确保在打包时正确配置了PyInstaller,特别是要包含所有必要的依赖项。你可以使用--onefile--onedir选项创建单个文件或目录包。例如:

    # 创建单文件包
    pyinstaller --onefile your_script.py
    
    # 或者创建目录包
    pyinstaller --onedir your_script.py
    
    1. 检查路径中的非ASCII字符:有时,路径中包含的非ASCII字符可能会导致问题。尝试将脚本移动到一个只有英文字符的路径下,然后再打包。

    2. 使用虚拟环境:创建一个Python虚拟环境并在其中安装所需的库,然后在这个环境中打包项目。这样可以确保所有的依赖都在同一个环境中,减少不兼容性。

    3. 调整打包参数:对于PyInstaller,你可能需要调整一些额外的参数来确保所有依赖都被包括进去,例如添加hidden-imports或datas参数。具体取决于你的代码依赖哪些模块。

    4. 更新相关软件:确保你的Python、pip、以及打包工具都是最新版本,因为旧版本可能存在兼容性问题。

    5. 如果以上方法都无法解决问题,尝试使用--debug选项来获取更详细的错误信息,以便于进一步排查问题。

    在尝试这些步骤之后,你应该能成功地在Windows 7上运行你的EXE文件。如果问题仍然存在,请提供更详细的项目结构和所使用的打包命令,以便我能提供更具体的建议。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月22日

悬赏问题

  • ¥15 如何利用c++ MFC绘制复杂网络多层图
  • ¥20 要做柴油机燃烧室优化 需要保持压缩比不变 请问怎么用AVL fire ESE软件里面的 compensation volume 来使用补偿体积来保持压缩比不变
  • ¥15 python螺旋图像
  • ¥15 算能的sail库的运用
  • ¥15 'Content-Type': 'application/x-www-form-urlencoded' 请教 这种post请求参数,该如何填写??重点是下面那个冒号啊
  • ¥15 找代写python里的jango设计在线书店
  • ¥15 请教如何关于Msg文件解析
  • ¥200 sqlite3数据库设置用户名和密码
  • ¥15 AutoDL无法使用docker install吗?
  • ¥15 cups交叉编译后移植到tina sdk的t113,只需要实现usb驱动打印机,打印pdf文件