看到“系统不支持 curl”这句提示,先要分清环境。实际遇到最多的是三种:PHP 程序报的、Python 脚本报的、Windows 命令行里找不到 curl。
PHP 里的 curl 未启用
PHP 的 curl 是扩展,不是内置函数。典型报错是 Call to undefined function curl_init()。先检查:
php -m | findstr curl没输出说明没启用。打开 php.ini,去掉注释:
extension=curl
extension_dir="ext"Windows 版 PHP 还要确认 ext 目录里存在 php_curl.dll,加载所需的 openssl、libssh2 相关 dll 也要在。改完重启 PHP 或 IIS、Apache,命令行再执行 php -m 确认。
还有一种情况:面板里装了多个 PHP 版本,改了 8.1 的 ini,网站跑的却是 7.4,自然没效果。按 phpinfo() 里显示的 Loaded Configuration File 路径去改才准。
Python 里的相关报错
Python 本身没有 curl,只有第三方包 pycurl,Windows 上 pip 安装经常因为找不到 curl 头文件失败。多数场景不需要它,用 requests 就行:
import requests
r = requests.get('https://example.com', timeout=10)Windows 命令行找不到 curl
Win10 1803 之后自带 curl.exe,在 C:\Windows\System32 下。老系统或精简系统可能缺失,从 curl 官网下载后把 bin 目录加入 PATH。
另一个高频问题:PowerShell 5 里 curl 是 Invoke-WebRequest 的别名,执行 curl 拿到的不是接口原文。改用 curl.exe:
Remove-Item alias:curl
curl.exe -I https://example.com主机环境限制
部分虚拟主机或容器镜像禁用 curl 扩展和 exec 函数。这种只能换主机或者让服务商开启,上线前跑探针确认更省事。