在 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_table
Wine 2.0 是第一个支持此功能的稳定版本,尽管开发版本从那时起就支持它1.9.9。
Wine 2.0 可能会在接下来的几周内发布,但候选版本已经可用。酒2.0被释放这个问题发布几周后。
无法升级 Wine?
在 Windows 计算机上,您将使用该库的 Microsoft 版本。如果您有 Microsoft 版本的副本,则可以将 Wine 配置为使用它而不是其内置版本。
您可以使用 Wine 的override
系统来实现这一点(使用 winecfg 或设置WINEDLLPATH
和WINEDLLOVERRIDES
环境变量)。
有一个项目叫酿酒技巧它可以下载 Microsoft 的库并配置您的 Wine 以使用它们。
综上所述
升级您的 Wine 版本,或降级您的 Python 版本。
如果您无法升级,有多种解决方法,但升级可能是您的最佳选择。