将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)

目录

    • 一、关于Julia
    • 二、安装Julia
      • 2.1 利用Homebrew-cask快速安装(推荐)
      • 2.2 利用官网安装包手动安装
      • 2.3 配置环境变量
    • 三、安装PkgMirrors库
      • 3.1 国内支持的镜像站
      • 3.2 切换General更新源
      • 3.3 安装PkgMirrors
    • 四、使用PkgMirrors
      • 4.1 指定镜像站
      • 4.2、使用Pkg库安装IJulia
    • 五、使用PkgServer(更加稳定快速的安装包方法)
      • 5.1 PkgMirrors使用痛点
      • 5.2 版本要求
      • 5.3 常用服务器
      • 5.4 使用方式
      • 5.5 利用JuliaZH包配置环境(推荐)
      • 5.6 利用命令行配置环境
      • 5.7 切换General更新源(建议)

一、关于Julia

Julia 是一门支持过程式、函数式和面向对象(object-oriented)的多范式语言,适合用于科学计算和数值计算,在高级数值计算方面有丰富的表现力,而且支持通用编程。

二、安装Julia

2.1 利用Homebrew-cask快速安装(推荐)

HomeBrew-Cask安装方法请参考文章https://blog.csdn.net/m0_46197393/article/details/106752367

  • 2.1.1 bash shell中执行以下命令进行自动安装
    brew cask install julia
    
    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第1张图片

2.2 利用官网安装包手动安装

  • 2.2.1 进入官网,选择相应版本下载,按一般软件安装步骤进行便可,这里不赘述了。
    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第2张图片

2.3 配置环境变量

  • 2.3.1 在应用程序文件夹中找到Julia程序>显示包内容>找到julia路径>复制位置信息
    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第3张图片
    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第4张图片

  • 2.3.2 将Julia可执行文件路径(步骤一复制的路径)添加到PATH环境变量中,配置信息插入.bash_profile配置文件文末。

    vim .bash_profile
    
    # 插入以下内容于.bash_profile文件中,Esc然后输入:wq保存并退出配置文件
    export PATH="/Applications/Julia-1.4.app/Contents/Resources/julia/bin:$PATH"
    

    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第5张图片

    # 使配置文件生效
    source .bash_profile
    
    which julia
    

    /Applications/Julia-1.4.app/Contents/Resources/julia/bin/julia

  • 2.3.3 终端中输入Julia启动Julia
    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第6张图片
    至此完成Julia软件安装

三、安装PkgMirrors库

使用Pkg.add("package")方法安装包时,需访问 GitHub 时,国内使用会很慢。利用PkgMirrors.jl
客户端更换为国内镜像站可加速包的下载安装

3.1 国内支持的镜像站

  • 浙江大学开源镜像站(https://mirrors.zju.edu.cn/julia/(镜像失效)

将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第7张图片

  • 中国科学技术大学开源软件镜像(https://mirrors.ustc.edu.cn/julia/
    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第8张图片

3.2 切换General更新源

  1. 启动Julia后,输入 “]” 进入Pkg REPL 交互式模式

    # type "]" to enter Pkg REPL-model
    Julia
    

    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第9张图片

  2. 使用中科大的镜像源更新拉取General注册表,可以更改为浙大的,但浙大的镜像源已经失效。以后安装某些包时,如果注册表存在镜像站中,不需要重新从原始地址(Github)进行下载,加快安装速度。但为了保证Julia 版本的向前兼容,采取以下代码执行,确保早期的 Julia 在拉取 General 时是通过 git clone 的方式进行的,其他数据从镜像站中拉取。

    # 存在General,先执行移除当前注册表
    registry rm General
    # 切换为中科大的镜像源拉取包的General
    registry add https://mirrors.ustc.edu.cn/julia/registries/General.git
    

    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第10张图片
    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第11张图片

3.3 安装PkgMirrors

  1. Julia 1.0 的用户需要把最后的版本号改成 v1.1.0。如果想使用开发分支可以删除 #v1.3.0。
    add https://mirrors.ustc.edu.cn/julia/PkgMirrors.jl.git#v1.3.0
    # 下面方法没指定为镜像站url,会从原地址下载,安装体验较差
    add PkgMirrors
    
    发现General 注册表下载源已改变,改为中科大镜像站
    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第12张图片
  • 以上步骤可以使用下面脚本实现(需在Julia的REPL模式下执行)
import Pkg
Pkg.Registry.add(Pkg.RegistrySpec(url="https://mirrors.ustc.edu.cn/julia/registries/General.git"))
Pkg.add(Pkg.PackageSpec(url="https://mirrors.ustc.edu.cn/julia/PkgMirrors.jl.git", rev="v1.3.0"))

四、使用PkgMirrors

4.1 指定镜像站

  • 4.1.1 delete退出Pkg的REPL模式,执行以下代码
# 导入该库
import PkgMirrors
# 查看所有可用的镜像
PkgMirrors.availables()
# 设置当前镜像,完成后镜像站会自动被激活
PkgMirrors.setmirror("USTC")
# PkgMirrors.setmirror("ZJU")

将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第13张图片

  • 4.1.2 至此完成PkgMirrors安装及镜像站指定。退出Julia后PkgMirrors镜像站也会停用。以后只需要import PkgMirrors库就可以激活设置好的镜像站,不需要每次启动Julia都要重新设置一便。

手动停用镜像站,或者清除本地缓存的信息

PkgMirrors.deactivate()
PkgMirrors.clear()

参考文章:
https://github.com/sunoru/PkgMirrors.jl
https://github.com/sunoru/PkgMirrors.jl/blob/master/README-zh_cn.md

4.2、使用Pkg库安装IJulia

  • 4.2.1 安装IJulia包(该包能将Julia设置为Jupyter的kernal)
    # 非REPL模式:
    # import Pkg
    # Pkg.add("IJulia")
    
    # REPL模式:
    add IJulia
    
    第一次安装结果,失败
    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第14张图片
    第二次安装结果,失败。原因是Artifacts.toml文件不能被镜像
    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第15张图片
  • 4.2.3 解决思路
  1. 查找后发现deps/build.jlArtifacts.toml两个数据文件不能被镜像,只能从原始网站下载,但是这里却不能安装该类文件,是不是因为环境变量没有配置。执行以下命令查看环境变量,发现没有JULIA_PKG_SERVER环境变量

    versioninfo()
    

    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第16张图片

  2. exit()退出Julia的REPL模式,配置环境变量 JULIA_PKG_SERVER,在.bash_profile中插入以下配置内容。

    # 打开配置文件
    vim .bash_prifile
    
    # i 指令插入以下内容,Esc后:wq保存并退出配置文件
    export JULIA_PKG_SERVER="https://pkg.julialang.org"
    

    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第17张图片

    # 使新配置文件生效
    source .bash_profile
    

    执行成功后生成一个servers文件夹,其实是激活了PkgServer服务器(详看第五章)

    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第18张图片

    # 启动Julia
    Julia
    # 查看环境是否配置成功
    versioninfo()
    

    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第19张图片
    环境配置成功!

  3. 激活镜像站

    import PkgMirrors
    
  4. ]后进入Pkg的REPL模式重新安装IJulia

    add IJulia
    

    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第20张图片
    安装速度不是很快,但总是是安装成功了,好多坑啊!!!

    总结:其实上述方法就是使用PkgServer服务(请参考 第五章)完成IJulia包安装。期间下载进入条会卡住不动,可能是因为网络不稳定造成的,ctrl+c中断任务后重新add IJulia就好了。

  • 4.2.4 建立IJulia库,创建Jupyter内核。
  1. 退出Pkg REPL模式后运行以下代码
    import Pkg
    Pkg.build("IJulia")
    
    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第21张图片
  2. 重新启动Jupyter notebook,创建按钮下拉框增加了Julia内核选项,说明创建成功
    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第22张图片将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第23张图片

五、使用PkgServer(更加稳定快速的安装包方法)

5.1 PkgMirrors使用痛点

  • 一般来说,Julia 装包时涉及到三个内容的下载:
  1. General 注册表
  2. 包的源代码
  3. 包的二进制依赖文件 (Artifacts)
  • PkgServer 提供全部的镜像,而 PkgMirrors 则只提供前两项的镜像。装包失败很多时候是二进制依赖下载失败导致的,因此在使用体验上 PkgServer会好很多。

  • 如以上使用PkgMirrors镜像站安装IJulia出现的问题,又无法从原地址下载该包依赖文件最终导致安装失败。

  • 现有方案:PkgServer服务器方法可以解决上述问题(补充:PkgServer可以单独使用,不需要与PkgMirrors配合,就算停用PkgMirrors也没关系)。

5.2 版本要求

  • 注意:PkgServer 的使用需要 Julia v1.4.0 及以后版本,在这之前版本需使用PkgMirrors

5.3 常用服务器

  • 5.3.1 镜像站选择
    官方默认地址:https://pkg.julialang.org
    北外开源镜像站(BFSU): https://mirrors.bfsu.edu.cn/julia/static

    国内推荐环境变量配置为北外开源镜像站,目的为了缓解网络问题*

5.4 使用方式

只需要配置环境变量JULIA_PKG_SERVER既可切换镜像站。

  • 5.4.1 查看配置信息。
    • 若是新安装的Julia还没有配置环境变量,则出现以下版本信息。
      versioninfo()
      
      将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第24张图片
    • 若完成本文4.2.3步骤,versioninfo()后会出现官方默认镜像站环境变量信息
      将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第25张图片

5.5 利用JuliaZH包配置环境(推荐)

JuliaZH包配置环境环境比较灵活方便,在此推荐下。如果无法快速安装该包时,可使用5.6步骤方法:先在命令行输入export JULIA_PKG_SERVER="https://pkg.julialang.org",临时设置服务器镜像源为默认的,然后再进行JuliaZH安装。因为前面第四章中已经在.bash_profile文件中永久设置了环境变量,所以不用进行临时设置。

  • 5.5.1 安装JuliaZH:在Julia的REPL模式下,执行以下代码

    import Pkg
    @time Pkg.add("JuliaZH")
    

    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第26张图片
    利用PkgMirrors指定中科大镜像源安装用时0.1s不到,是真的迅速!

  • 5.5.2 配置环境变量

    临时设置方法:意味着退出Julia后将重置环境变量
    1.在Julia的REPL模式下执行以下代码

    using JuliaZH # 在 using 时会自动切换到国内镜像
    JuliaZH.set_mirror("BFSU") # 手动指定为 BFSU 镜像
    JuliaZH.mirrors # 查看目前记录的镜像地址
    

    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第27张图片
    2.versioninfo()查看是否配置成功。上游镜像站已成功更换为北外大的。
    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第28张图片

    永久设置方法:配置镜像站将不会因为退出软件而释放
    1.在Julia的REPL模式下执行以下代码,修改startup.jl文件

    using JuliaZH
    # 设置成默认镜像源
    JuliaZH.generate_startup("default")
    # 设置成北外大镜像源
    JuliaZH.generate_startup("BFSU")
    

    将Julia设置为Jupyter内核(附:PkgMirrors及PkgServer快速安装包方法)_第29张图片

5.6 利用命令行配置环境

临时配置:意味着每次重启命令行shell时得重新配置
根据不同系统,选择在相应命令行执行以下代码

# Linux/macOS Bash命令行:
# 设置成北外大镜像源
export JULIA_PKG_SERVER=https://mirrors.bfsu.edu.cn/julia/static
# 设置成默认镜像源
export JULIA_PKG_SERVER="https://pkg.julialang.org"
# Windows Powershell命令行
# 设置成北外大镜像源
$env:JULIA_PKG_SERVER = 'https://mirrors.bfsu.edu.cn/julia/static'
# 设置成默认镜像源
$env:JULIA_PKG_SERVER = 'https://pkg.julialang.org'

永久配置:
1.MacOX Bash中在.bash_profile文件中配置环境,操作方法请看步骤4.2.3
2.Linux Bash:在 ~/.bashrc 中添加下面这一行内容

export JULIA_PKG_SERVER="https://pkg.julialang.org"

3 Windows系统:
我的电脑>属性>高级系统设置>环境变量:在用户变量或系统变量栏中新建JULIA_PKG_SERVER系统变量

5.7 切换General更新源(建议)

将注册表更新源切换成北外大的,这样可以配合北外大PkgServer镜像站使用,对安装某些包来说效率可能更高,但有时中科大镜像源与北外大服务器或与默认官方服务器组合来安装某些包效率更高,这个根据实际使用情况搭配使用。

  • 设置方法同3.2章节,但如果已存在注册表,需先移除当前的,然后Pkg模式下执行以下代码。
    # 删除当前注册表
    registry rm General
    #从新镜像站下载/拉取注册表,依然兼容早期 Julia 版本
    registry add https://mirrors.bfsu.edu.cn/git/julia-general.git
    # registry add General – 不兼容旧的 Julia 版本更新注册表
    

参考文章:
https://discourse.juliacn.com/t/topic/2969
北京外国语大学开源软件镜像站

你可能感兴趣的:(工具)