对于问题: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