在 wine 下运行便携式 python3

在 wine 下运行便携式 python3

在 wine 下安装 python 通常意味着运行图形安装程序,但我没有这个选项,所以我下载Windows x86-64 嵌入式 zip 文件Python 3.6.0并打开包装。

但是,当我运行时wine python.exe出现错误:

wine: Call from 0x7b83c3ae to unimplemented function api-ms-win-crt-runtime-l1-1-0.dll._initialize_onexit_table, aborting
err:module:attach_process_dlls "python35.dll" failed to initialize, aborting
err:module:LdrInitializeThunk Main exe initialization for L"Z:\\<path>\\python.exe" failed, status 80000100

对此我们能做些什么呢? Wine版本是1.8。

答案1

很少有用户需要在 Wine 下运行 Python,因为 Python 在 Wine 运行的所有系统上都可以很好地运行。然而,这样做是有原因的,而且你似乎也有一个理由(使用 PyInstaller 构建 Windows 安装程序)。

某些版本的 Python 当然可以在某些版本的 Wine 上运行。不幸的是,您遇到了一个不起作用的组合。


发生了什么

看来你遇到了Bug #39437:“Visual Studio 2015 编译的 C++ 程序无法运行”

_initialize_onexit_table您正在运行的程序使用从名为 的库中调用的函数api-ms-win-crt-runtime-l1-1-0.dll

Wine 提供了自己的版本,但直到最近(2016 年中)api-ms-win-crt-runtime-l1-1-0.dll才支持该功能。 _initialize_onexit_tableWine 2.0 是第一个支持此功能的稳定版本,尽管开发版本从那时起就支持它1.9.9

Wine 2.0 可能会在接下来的几周内发布,但候选版本已经可用。酒2.0被释放这个问题发布几周后。

无法升级 Wine?

在 Windows 计算机上,您将使用该库的 Microsoft 版本。如果您有 Microsoft 版本的副本,则可以将 Wine 配置为使用它而不是其内置版本。

您可以使用 Wine 的override系统来实现这一点(使用 winecfg 或设置WINEDLLPATHWINEDLLOVERRIDES环境变量)。

有一个项目叫酿酒技巧它可以下载 Microsoft 的库并配置您的 Wine 以使用它们。

综上所述

升级您的 Wine 版本,或降级您的 Python 版本。

如果您无法升级,有多种解决方法,但升级可能是您的最佳选择。

相关内容