python 3.6 monkey.patch_を実行all()エラー問題

1588 ワード

最新のpython 3.6でコラボレーションを使用してgeventを有効にすると、import geventfrom gevent import monkeymonkey.patch_という警告が表示される場合があります.all()# monkey.patch_socket()# monkey.patch_ssl()import urllib.requestdef run_task(url):    print("Visit --> %s"% url)    try:        response = urllib.request.urlopen(url)        data = response.read()        print("%d bytes received from %s"% (len(data), url))    except Exception as e:
        print(「プログラム実行エラー」,e)
if __name__ == '__main__':    urls = ['https://github.com/', 'https://www.python.org/', 'http://www.cnblogs.com/']    greenlets = [gevent.spawn(run_task, url) for url in urls]    gevent.joinall(greenlets)
実行結果は以下の通りである:MonkeyPatchWarning:Monkey-patching ssl after ssl has already been imported may lead to errors,including RecursionError on Python 3.6.Please monky-patch earlier.See.https://github.com/gevent/gevent/issues/1016  monkey.patch_all()Visit --> https://github.com/Visit --> https://www.python.org/Visit --> http://www.cnblogs.com/46365 bytes received from http://www.cnblogs.com/48801 bytes received from https://www.python.org/59467 bytes received from https://github.com/アクセス https://github.com/gevent/gevent/issues/1016後から分かるように、方法は
import gevent
import gevent.monkey
>>> gevent.monkey.patch_all()

python 3.6に付属しているgeventバージョンが低すぎるため、アンインストール後に最新のgeventバージョンを再インストールすればよいため、再実行後も同じ赤い警告が表示されます.
ソリューション:
pip uninstall gevent
pip install gevent
再稼働に成功し、完了しました.