zen*_*poy 16 python compatibility
os.fork() Windows下不支持命令,并给出以下错误:
AttributeError: 'module' object has no attribute 'fork'
Run Code Online (Sandbox Code Playgroud)
所以一般的问题是如何运行包含os.fork()Windows下调用的脚本?.我不介意使用只会模仿行为并且运行速度慢得多的东西,它只用于测试.我也不想更改脚本,因为它是第三方模块.
为了给你一个更广泛的角度来看,我想使用该模块rq也称为redis queueWindows上.最终我将在Heroku服务器上运行代码,这是一台Linux机器,但在开发Web应用程序期间,我正在使用Windows.
没有简单的方法可以fork()在没有它的系统上进行模拟,例如Windows.如果代码仅用于fork()启动新进程exec,则可以将其移植使用subprocess.但是在rq中似乎不是这种情况,所以你有几个选择:
移植rq到Windows,或要求别人为您执行此操作.移植调用代码的部分的最简单方法fork()可能是使用multiprocessing模块.但是,你仍然需要更换依赖的Unix代码的其他部分,如使用signal.alarm()中timeouts的模块.
在Cygwin下使用Python,它模仿一个功能齐全的(虽然很慢)fork(),所以Cygwin Python有一个工作os.fork().请注意,要获得os.fork(),您将需要使用Cygwin构建的Python,例如Cygwin提供的Python,而不是简单地在Cygwin下运行正常的Windows Python.
在运行于虚拟机的Linux上测试应用程序.
在这些不愉快的选择中,我推荐最后一个.
| 归档时间: |
|
| 查看次数: |
17408 次 |
| 最近记录: |