對于問題:python OSError: [Errno 24] Too many open files
原因:超出了進程同一時間最多可開啟的文件數.
解決方案P:
使用ulimit -n
查看進程同一時間最多可開啟的文件數 mac默認是256,linux是1024
修改
sudo vim /etc/security/limits.conf
這個文件的最后添加兩行代碼,這里我修改限制為6000
* soft nofile 6000
* hard nofile 6000
還有其他幾種方法:
使用ulimit -a 可以查看當前系統的所有限制值,使用ulimit -n 可以查看當前的最大打開文件數。
使用 ulimit -n 65535 可即時修改,但重啟后就無效了。(注ulimit -SHn 65535 等效 ulimit -n 65535,-S指soft,-H指hard)
有如下三種修改方式:
1.在/etc/rc.local 中增加一行 ulimit -SHn 65535
2.在/etc/profile 中增加一行 ulimit -SHn 65535
修改上面的文件數可以發現也可以解決這個報錯,HTTPConnectionPool(host=‘t.tips', port=80): Max retries exceeded with url:
這是因為使用socket通信時也是依托于文件的。但是如果請求api端有請求數量限制,仍然是拉取不到結果的。
參考:
https://blog.csdn.net/qq_40244755/article/details/103973572
https://www.jb51.net/article/105751.htm