首页 > 解决方案 > 如何管理 Cygwin 中可能由 BLODA 引起的分叉错误?

问题描述

当我从Cygwin 中的requirements.txt文件安装项目要求时,我遇到了一个 fork 错误(见下文) 。pip我意识到在 Cygwin 中安装软件包的最佳方式是使用启动 .exe,但我希望使用的一些文件(或所需版本)不在 Cygwin 软件包列表中(即 Flask)。

我知道BLODA可能会导致此分叉问题,因为我同时拥有 Avast 和 NVIDIA GeForce 显卡——这两者都在可能导致问题的软件列表中。我关闭了 Avast 的文件系统和行为组件(按照推荐),但仍然遇到了问题。我将如何解决 NVIDIA GeForce 驱动程序?我可以连接到本机显卡,但这是否可以避免问题,因为它实际上并没有删除驱动程序?我发现很难找到解决这个问题的详细方法。有没有人找到解决这个问题的方法?

0 [main] python2.7 1731 child_info_fork::abort: address space needed by 'libpython2.7.dll' (0x400000) is already occupied
Error [Errno 11] Resource temporarily unavailable while executing command python setup.py egg_info
Could not install packages due to an EnvironmentError: [Errno 11] Resource temporarily unavailable

更新:感谢下面的@Chris J. Breisch 建议在大多数情况下可能是最好的方法 - 重新设置我所有的包。唉,因为我正在处理一个需要较旧软件包的较旧项目(以及一些似乎根本不包含在 Cygwin 中的 Flask),所以我不考虑重新设置基准。考虑到我目前的限制,我可能不得不放弃 Cygwin 并使用不同的方法。

更新:我继续尝试@Chris J. Breisch 建议的变基;但是,在变基后,我仍然在同一个地方遇到了同样的分叉错误。

标签: pythonwindowspackagecygwin

解决方案


您最好的选择是 Cygwin FAQ中的这一部分。

如何修复 fork() 失败?

您想要的提示很可能是这样的:

强制完全变基:运行rebase-trigger fullrebase,退出所有 Cygwin 程序并运行 Cygwin 设置。

默认情况下,Cygwin 的安装程序会自动执行新安装文件的增量变基。强制完全变基会导致变基映射在执行变基之前被清除。

有关详细信息,请参阅 /usr/share/doc/rebase/README 和 /usr/share/doc/Cygwin/_autorebase.README。

请注意,安装新包或更新现有包会撤消 rebase 的影响,并且通常会导致 fork() 失败再次出现。


推荐阅读