2017-11-28 15 views
0

私は15歳以上のPythonの本で見つかった次のコードを使用したいと思います(現在、バックポーティングの問題でPython 2.7を使用していますが、主要なプロジェクト)。Python - fcntl.FNDELAYを見つけることができません

import os, popen2, fcntl, select 

def makeNonBlocking(fd): 
    fl = fcntl.fcntl(fd, fcntl.F_GETFL) 
    try: 
     fcntl.fcntl(fd, fcntl.F_SETFL, fl | fcntl.O_NDELAY) 
    except AttributeError: 
     fcntl.fcntl(fd, fcntl.F_SETFL, fl | fcntl.FNDELAY) 

「fcntl.FNDELAY」属性を見つけることができないという問題があります。 1時間以上のグーグルで私はそれ以上のことはありません。 NULL文を使用してコードを交換することがfcntl.O_NDELAY

にOSがLinuxのミントで17.3

+0

[pythonのfcntlモジュールの場所はどこですか?](https://stackoverflow.com/questions/7723571/where-is-the-location-of-the-fcntl-module-of- Python) – Robin

答えて

0

クイックグーグルを発見されたことを確認あなたはおそらくもos.FNDELAYとして知っているいくつかの点でいたos.O_NDELAYを探している示唆しています。

+0

https://bugs.python.org/file2321/utils.pyの冒頭のtry/exceptを参照してください。 – tripleee

関連する問題