You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否让Julia的Downloads模块使用wget替代默认curl?

Julia 改用wget替代curl进行下载

Linux下Julia的Downloads模块默认依赖curl完成下载,若你遇到curl异常但wget正常的情况,可以通过以下两种方式改用wget:

方法1:直接调用wget的自定义下载函数

这是最直接的方案,无需修改现有模块配置,自己实现一个调用系统wget的函数即可:

# 定义wget下载函数,支持指定目标路径和verbose模式
function wget_download(url::String, dest::String=basename(url); verbose::Bool=false)
    cmd_args = ["-O", dest, url]
    verbose && push!(cmd_args, "-v")
    run(`wget $cmd_args`)
    return dest
end

# 使用示例
wget_download("https://pkg.julialang.org/registries", "./registries"; verbose=true)

方法2:全局替换Downloads模块的下载实现

如果需要让所有代码中调用Downloads.download时都自动使用wget,可以通过自定义模块替换默认实现:

  1. 创建自定义模块文件(比如WgetDownloads.jl):
module WgetDownloads

export download

function download(url::String, dest::String=basename(url); verbose::Bool=false)
    cmd_args = ["-O", dest, url]
    verbose && push!(cmd_args, "-v")
    run(`wget $cmd_args`)
    return dest
end

end # module
  1. 在你的Julia环境中加载并替换默认Downloads:
# 加载自定义模块
include("WgetDownloads.jl")
using .WgetDownloads

# 将默认的Downloads指向自定义模块
const Downloads = WgetDownloads

# 现在可以像原来一样调用
Downloads.download("https://pkg.julialang.org/registries"; verbose=true)

注意事项

  • 确保系统中wget已安装且在PATH环境变量可访问范围内,可通过which wget验证路径有效性。
  • 方法1适合临时单任务下载,方法2适合全局替换场景。

内容的提问来源于stack exchange,提问作者josegts

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 04:05:57