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