Julia 初学者指南(一) | 安装、配置及编译器

唠唠闲话

Julia 是一种高性能的动态编程语言,特别适用于数值分析和计算科学领域。它拥有一个强大的类型系统和灵活的多重分派机制,这使得代码易于编写同时还能保持接近 C 语言的运行速度。此外,Julia 也能无缝调用 C 和 Fortran 库,使得它能充分利用现有的高性能计算资源。
本系列教程旨在带领读者从零开始,逐步深入学习 Julia 编程。 无论你是编程新手还是有经验的开发者,这些教程都将为你提供清晰的学习路径和丰富的示例代码,帮助你快速掌握 Julia 的核心技术和高级功能。

本篇介绍 Julia 的安装、配置及常用编译器,帮助读者快速搭建 Julia 编程环境。


安装教程

Windows

  1. 在 发行页 按系统选择下载
    20211018072119

  2. 双击安装包,按 Next 安装
    20211018073124

  3. 安装完成,桌面出现 Julia 图标,双击图标在命令行运行 Julia
    20211018073337

初始化技巧:打开 ~/.julia/config/startup.jl(如果没有就创建一个),每次运行 Julia 这个文件会先执行。

Ubuntu

  1. 在 官网 下载软件,或者用 wget 下载,当前最新版是 3.10.4

    # 注意将链接替换为最新版本
    wget https://julialang-s3.julialang.org/bin/linux/x64/1.10/julia-1.10.4-linux-x86_64.tar.gz
    

    下载页提供了几个版本,本地终端输入 arch 查看系统内核,比如我的系统是 x86_64
    20220423095716

  2. 解压文件,并复制到安装目录,比如 /opt/

    cd ~/download
    tar -xvzf julia-1.10.4-linux-x86_64.tar.gz
    sudo cp -r julia-1.10.4 /opt/
    

    如果没有管理员权限,则安装在用户目录,比如:

    tar -xvzf julia-1.10.4-linux-x86_64.tar.gz -C ~/software
    

    注:个人安装可以设置源码为可读权限,避免修改

  3. 创建符号链接:

    # 管理员权限
    sudo ln -s /opt/julia-1.10.4/bin/julia /usr/local/bin/julia
    # 无权限
    ln -s ~/software/julia-1.10.4/bin/julia ~/.local/bin/julia
    
  4. 终端输入 julia 运行
    julia

  5. 使用 Pkg 模块安装插件,将 Julia 添加到 Jupyter 中:

    using Pkg
    Pkg.add("IJulia")
    

    显示如下:
    20211010122345
    运行 jupyter-notebook,此时已添加 Julia:
    jupyter

  6. 如果存在多个版本的 Julia 或者安装过程中 IJulia 构建错误,尝试使用 ]build IJulia 重新构建。


常用编译器

本节介绍三个编译器:Vscode,Jupyter 和 Pluto;日常办公首推 Vscode,做笔记或代码演示推荐用 Jupyter 或 Pluto。

Vscode

VSCode 是由微软开发且跨平台的免费源代码编辑器。软件支持语法高亮、代码自动补全、代码重构、查看定义功能,并且内置了命令行工具和 Git 版本控制系统。用户可以更改主题和键盘快捷方式实现个性化设置,也可以通过内置的扩展程序商店安装扩展以拓展软件功能。vscode 的安装教程参看这里。

下边介绍在 Vsocde 中配置 Julia 的方法。

  1. 安装插件
    20211018115105

  2. 新建 .jl 文件,使用 Ctrl + Enter 执行当前行,或者选中多行后按 Ctrl + Enter 执行多行,例如
    20211018075635

  3. 安装插件时,如果提示编译器错误:
    20211018075324
    按提示点击“打开设置”,填写 Julia 的文件路径即可,比如
    20211018075439

更多关于 VSCode 运行 Julia 的使用技巧和常见问题,参看这个网站:https://www.julia-vscode.org/

Jupyter

Jupyter Notebook 是一个 Web 应用程序,便于创建和共享程序文档,支持实时代码,数学方程,可视化和 markdown 等。安装方法参看这里。

在 Julia 终端执行下边两行命令,将 Julia 添加到 jupyter:

using Pkg
Pkg.add("IJulia")

运行 jupyter-notebook,可以看到 Julia 已添加进来了。
jupyter

如果电脑使用多个 Julia 版本,比如说希望将 Julia 1.7 也添加到 Jupyter,先打开 Julia 1.7 然后执行下边代码

using Pkg
Pkg.add("IJulia")
Pkg.build("IJulia")

比前边多一个 build 命令才会生效,效果如下
深度截图_选择区域_20220407142301

Pluto

Pluto 是 Julia 的轻量级反应式(reactive)笔记本,可以看做 Julia 版本的 Jupyter-notebook,但支持功能更多。更多介绍参看 Pluto 的 GitHub 项目地址。

Pluto 的安装及使用方法:

  1. 打开 Julia 终端,输入 ] 进入 Pkg 模式,执行 add Pluto 安装
    20211031221822

  2. 退格,回到 Julian 模式,导入 Pluto 并运行

    using Pluto
    Pluto.run() # Pluto.run(port=1234)
    

    深度截图_gnome-terminal-server_20211031222021

  3. 弹出界面如下
    深度截图_选择区域_20211031222155


安装如果遇到问题,欢迎评论交流~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/801546.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

有关电力电子技术的一些相关仿真和分析:⑤交-直-交全桥逆变+全波整流结构电路(MATLAB/Siumlink仿真)

全桥逆变+全波整流结构 参数:Vin=500V, Vo=200V, T=2:1:1, RL=10Ω, fs=100kHz, L=1mH, C=100uF (1)给定输入电压,输出电压和主电路参数,仿真研究电路工作原理,分析工作时序; (2)调节负载电阻,实现电流连续和断续,并仿真验证; (3)调节占空比,分析占空比与电…

公司想无偿裁员,同事赖着不走

关注卢松松,会经常给你分享一些我的经验和观点。 这招好像也不错! 事情是这样的:某公司准备把成本高的员工都裁掉,主要包含研发部和程序员,总共18个人,准备裁掉10人,因为他们工资开的太高了,…

ROS-机械臂——从零构建机器人模型

URDF建模 URDF URDF,全称为 Unified Robot Description Format(统一机器人描述格式),是一种用于描述机器人几何结构和运动学属性的标准文件格式。URDF 文件通常用于机器人模拟、路径规划、控制算法开发和可视化等领域&#xff0c…

信号和槽机制的轻量级实现,sigslot 库介绍及使用

Qt中的信号与槽机制很好用,然而只在Qt环境中。在现代 C 编程中,对象间的通信是一个核心问题。为了解决这个问题,许多库提供了信号和槽(Signals and Slots)机制。今天推荐分享一个轻量级的实现:sigslot 库。…

AWS CDN新增用户ip 地区 城市 响应头

1.需要自定义cdn缓存策略 这里的策略也是先复制之前的cdn策略哈 最后复制完了 全部新增这两条标头key CloudFront-Viewer-Country CloudFront-Viewer-City 2.然后新增cdn函数,应用你写的这个函数 function handler(event) {var request event.request;var respon…

全国农产品地理标志登记汇总表(截至2022年2月25日)

数据来源:自主整理 数据范围:省级层面 数据数量:3510条数据指标: 本数据展示了截至2022年2月25日的全国农产品地理标志登记汇总表,具体指标展示如下表: 序号 年份 产品名称 所在地域 证书持有人…

【每日刷题】Day81

【每日刷题】Day81 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 日期累加_牛客题霸_牛客网 (nowcoder.com) 2. 打印日期_牛客题霸_牛客网 (nowcoder.com) 3. 2956.…

分享两个性价比极高的SSR方案

最近总监提出我们公司运营的一个网站运营数据有点差,亟待提升该网站的SEO(搜索引擎优化)体验。不然自然流量着实有点少,全靠氪金买百度付费流量,成本太高,显然不太现实。但是当时技术选型的时候并未考虑到S…

【Linux】权限的管理和Linux上的一些工具

文章目录 权限管理chgrpchownumaskfile指令sudo指令 目录权限粘滞位Linux中的工具1.软件包管理器yum2.rzsz Linux开发工具vim 总结 权限管理 chgrp 功能:修改文件或目录的所属组 格式:chgrp [参数] 用户组名 文件名 常用选项:-R 递归修改文…

解析 Mira :基于 Web3,让先进的 AI 技术易于访问和使用

“Mira 平台正在以 Web3 的方式解决当前 AI 开发面临的复杂性问题,同时保护 AI 贡献者的权益,让他们可以自主拥有并货币化自己的模型、数据和应用,以使先进的 AI 技术更加易于访问和使用。” AI 代表着一种先进的生产力,它通过深…

UE4-初见虚幻引擎

一.创建自己的工程 1.启动 a.通过桌面双击图标来打开对应版本的虚幻引擎 b.通过EPIC启动器开启动虚幻引擎 2.选择或新建项目 ps:高版本虚幻编辑器可以打开低版本的虚幻项目,但是高版本虚幻的项目不可以由低版本的虚幻编辑器打开。 3. 选择要打开的项目 4.选择模版 选…

mindspore打卡第24天之LSTM+CRF序列标注

LSTMCRF序列标注 概述 序列标注指给定输入序列,给序列中每个Token进行标注标签的过程。序列标注问题通常用于从文本中进行信息抽取,包括分词(Word Segmentation)、词性标注(Position Tagging)、命名实体识别(Named Entity Recognition, NER)等。以命名实…

Host碰撞实验

目录 Host碰撞原理 Host碰撞判断技巧 Host碰撞检测方法 Host碰撞实验步骤 从攻击者的视角来进行资产的梳理,采用全端口扫描子域名收集的方式,识别所有的企业资产暴露面。但即使是这样,往往会因为配置错误或是未及时回收等原因&#xff0c…

C++ std::lock_guard和 std::unique_lock

二者都是 C 标准库中用于管理互斥锁(mutex)的 RAII(Resource Acquisition Is Initialization)机制的类。这些类可以确保互斥锁在构造时被获取,在析构时被释放,从而避免死锁和资源泄漏问题。不过&#xff0c…

【数据结构取经之路】二叉搜索树的实现

目录 前言 二叉搜索树 概念 性质 二叉搜索树的实现 结点的定义 插入 查找 删除 二叉搜索树完整代码 前言 首先,二叉搜索树是一种数据结构,了解二叉搜素树有助于理解map和set的特性。 二叉搜索树 概念 二叉搜索树又称二叉排序树&#xff0c…

服务器操作集合

服务器使用PC作为代理访问外网 1、PC上启动代理,比如nginx 下载nginx:http://nginx.org/en/download.html 修改配置文件,在conf下: http {include mime.types;default_type application/octet-stream; sendfile …

C++深度解析教程笔记12ok-继承,继承的构造与析构,同名覆盖

C深度解析教程笔记12 第43课 - 继承的概念和意义实验-类的组合实验-类的继承实验-子类与父类的构造顺序小结 第44课 - 继承中的访问级别实验-子类直接访问父类非公成员(error)实验-子类访问父类非公成员protected实验-复杂的例子bug 小结 第45课 - 不同的…

如何构建全生命周期的安全体系架构来确保容器的安全?

容器技术在云原生应用和微服务架构中得到了广泛应用,其轻量、灵活和高效的特点使其成为现代IT环境中的重要工具。然而,尽管容器带来了许多优势,但其安全性问题也不容忽视。接下来跟随博主一起探索如何构建全生命周期的安全体系架构以确保容器…

《算法笔记》总结No.7——二分(多例题详解版)

一.二分查找 目前有一个有序数列,举个例子,假设是1~1000,让我们去查找931这个数字,浅显且暴力的做法就是直接从头到尾遍历一遍,直到找到931为止。当n非常大,比如达到100w时,这是一个非常大的量级…

经纬恒润底盘控制产品R-EPS成功量产

近日,经纬恒润开发的齿条式电动助力转向系统R-EPS(Rack-Electronic Power Steering)搭载某新能源车企中高端MPV车型,成功量产落地。 该产品采用恒润Double Pinion/Rack平台级的软硬件方案,模块复用程度更高&#xff0c…