更改 Julia 中的包目录

2024-03-11

我想更改 Julia 中的包目录。默认为

"~/.julia/v0.4"

我想要move it to /opt/julia/v0.4/。理想情况下,我想移动已安装的软件包~/.julia/v0.4到新地点。但如果这是不可能的,我可以重新安装它们。

我需要做什么?


Julia-v0.6 及之前版本

可以按照以下步骤更改 julia 的包目录:

  1. run export JULIA_PKGDIR=/your/directory在 shell 中(或手动添加新的环境变量JULIA_PKGDIR在窗户上)
  2. run Pkg.init()在 Julia 中初始化一个新的包系统
  3. copy REQUIRE从旧目录到新目录
  4. run Pkg.resolve()在朱莉娅

朱莉娅-v0.7+

新包管理器中的“包目录”称为DEPOT_PATH https://docs.julialang.org/en/latest/base/constants/#Base.DEPOT_PATH,可以通过添加环境变量来改变JULIA_DEPOT_PATH:

JULIA_DEPOT_PATH=./test julia

julia> DEPOT_PATH
1-element Array{String,1}:
 "./test"

(v0.7) pkg> add JSON2
   Cloning default registries into /Users/gnimuc/test/registries

使用新的包管理器,我们可以在任何我们想要的目录中创建独立的项目,而不是拥有一个巨大的包目录。每个项目都包含一个Project.toml and a Manifest.toml如果它有一些依赖性。这两个文件记录并持续跟踪项目的环境。

UPDATE

以下信息可能已过时。我强烈推荐使用PkgTemplates.jl https://github.com/invenia/PkgTemplates.jl用于在 Julia-v1.0+ 中生成项目。

生成一个新项目

我们可以在任意文件夹中生成一个新项目,但是我们必须cd到项目文件夹using该项目。这(v0.7)下图显示我们仍然处于默认环境中,因此我们无法使用新生成的项目:

(v0.7) pkg> generate ./MyNewProject
Generating project MyNewProject:
    ./MyNewProject/Project.toml
    ./MyNewProject/src/MyNewProject.jl

julia> using MyNewProject
ERROR: ArgumentError: Module MyNewProject not found in current path.
Run `Pkg.add("MyNewProject")` to install the MyNewProject package.
Stacktrace:
 [1] require(::Module, ::Symbol) at ./loading.jl:868

If we cd到项目文件夹并activate环境,那么我们就可以using我们的新项目没有任何问题:

shell> cd MyNewProject/
/Users/gnimuc/MyNewProject

(v0.7) pkg> activate .

(MyNewProject) pkg> 

julia> using MyNewProject

我认为这是新的包管理器和旧的包管理器之间的巨大区别。简而言之,我们需要明确activate我们未注册的项目/包。

下载并初始化别人的项目

根据文档,我们可以通过添加未注册的包/项目add命令:

(HelloWorld) pkg> add https://github.com/fredrikekre/ImportMacros.jl

此命令将目标包添加为我们当前项目的依赖项。在这个例子中,我们添加了ImportMacros in HelloWorld's Manifest.toml。如果我们只是把它作为一个顶级项目怎么办?将其添加到默认环境(v0.7)?不,我们不需要。答案是我们可以直接下载代码,cd到文件夹并运行instantiate在 pkg 模式下:

shell> git clone https://github.com/Gnimuc/GLTF.jl GLTF
Cloning into 'GLTF'...
remote: Counting objects: 286, done.
remote: Compressing objects: 100% (56/56), done.
remote: Total 286 (delta 73), reused 103 (delta 59), pack-reused 167
Receiving objects: 100% (286/286), 62.16 KiB | 46.00 KiB/s, done.
Resolving deltas: 100% (135/135), done.

shell> cd GLTF

pkg> activate .

(GLTF) pkg> instantiate
  Updating registry at `~/.julia/registries/General`
  Updating git-repo `https://github.com/JuliaRegistries/General.git`

新的包管理器很棒!我们既不需要“include before using“也不要把所有东西都打包成一个包using它。我们现在有了全功能的“项目”!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更改 Julia 中的包目录 的相关文章

  • 如何查看函数来自哪个包?

    如何查看函数 或其他对象 源自哪个包 例如函数 take 这可以通过 which macro which take Base
  • 优化 Julia 中的递归函数

    我编写了一个 Julia 代码 它计算高斯函数的积分 并且我有一种被一遍又一遍调用的核函数 根据 Julia 内置Profile模块 这是我在实际计算过程中花费大部分时间的地方 因此我想看看是否有任何方法可以改进它 这是一个递归函数 我以一
  • 如何从 Julia 程序调用 Python 函数?

    我使用 numpy pandas scikit learn 在 Python 中编写了一些代码 是否可以从 Julia 程序调用此 Python 代码 我认为你可以考虑三种不同的方式从 Julia 调用 Python 代码 按照从最低级别到
  • Julia 中的并行梯度计算

    不久前我被说服放弃我舒适的 matlab 编程并开始使用 Julia 编程 我已经在神经网络方面工作了很长时间 我认为现在有了 Julia 我可以通过并行计算梯度来更快地完成工作 不需要一次性对整个数据集计算梯度 相反 我们可以拆分计算 例
  • 获取 Julia Lang 中当前变量的列表

    我是朱莉娅 朗的新手 我是Matlab背景出来的 在Matlab中 当按下whos命令我将获取当前范围内的所有变量 而且 我可以将它们存储在另一个变量中 例如x whos Julia 中是否存在这样的命令 Matlab 中的示例代码 gt
  • Julia 转置 DataFrame 中的分组数据?

    ds Dataset group repeat 1 3 inner 2 b repeat 1 2 inner 3 c repeat 1 1 inner 6 d repeat 1 6 inner 1 e string a f 在inmemor
  • 关于 Julia 中的 ndarray 创建:在额外维度中堆叠

    我想将以下 python 代码转换为 julia import numpy as np x np random random 4 5 6 y np array x x x 2 x 3 x 4 x print y shape gt 2 3 4
  • 使用JuMP时如何转换变量的类型

    我正在使用 Julia JuMP 来实现算法 在一部分中 我定义了一个具有连续变量的模型并求解线性模型 我做了一些其他计算 在此基础上向模型添加了一些约束 然后我想用整数变量来解决相同的问题 我无法使用convert 函数 因为它不带变量
  • 有没有办法重置 Julia 中的当前工作目录?

    假设当前工作目录是C 保存 jl文件的目录 然后我将cwd切换到一些子文件夹来执行一些任务 有没有办法直接将cwd重置回C 之后 即最初的cwd 或者 是否可以独立于当前工作目录来定位正在运行的 jl 文件所在的目录 无需事先将 cwd 保
  • 如何加快 Julia 脚本的启动时间

    我编写了一个脚本来在 Julia 中绘制每日数据 但我发现它运行缓慢 似乎没有理想的方法来加速它 例如 foo jl bin bash exec julia O0 compile min BASH SOURCE 0 using Unicod
  • 我可以使用具有固定输入的“map”吗?

    假设我这样做f x y 2x ythen map f 2 4 6 1 1 1 我会得到 3 element Array Int64 1 5 9 13 If I do map f 2 4 6 1 即我想假设第二个输入始终相同 我会得到 1 e
  • 在 Julia 中迭代具有不同数量参数的不同函数

    我正在尝试使用不同数量的参数对不同的函数运行循环 变量是在运行时在循环内创建的 我想在每次迭代时使用 eval 来使用变量 symbol 实例化一个 Struct 但是 我不能这样做 因为 eval 只在全局范围内有效 这是有效案例的 MW
  • Julia:数组是否包含特定的子数组

    在 julia 中 我们可以检查数组是否包含值 如下所示 gt 6 in 4 6 5 true 然而 当尝试按特定顺序检查子数组时 这会返回 false gt 4 6 in 4 6 5 false 验证数组中是否存在特定子数组的正确语法是什
  • 如何创建并推送到共享或分布式数组数组?

    我编写了 Julia 代码 其中初始化一个空数组 如下所示 a 稍后在代码中 我简单地推送到该数组 如下所示 推 a b 其中 b c d e 是另一个数组 每个 b 可以具有不同的长度 这在非并行化代码中工作得很好 但是 我想在并行代码中
  • Julia:显示函数体(以查找丢失的代码)

    在 R 语言中 我可以声明一个函数并查看函数体 如下所示 gt megafoobar function x return x 10000 gt body megafoobar return x 10000 类似的事情在 Julia 中也可能
  • 如何更改julia(1.8.5)默认安装包的位置?

    如何更改julia 1 8 5 默认安装包的位置 我不想把包安装到c盘 因为pwd 和homedir 都默认到c盘 如何修改 我想每次都像安装python包一样打开Julia 有固定的安装路径 例如user Base User site 我
  • 在 Julia 中,有没有办法让“现在”(至少)达到毫秒精度?

    通常 要了解代码中发生的情况 您需要高精度时间来分析您的应用程序或出于其他原因 显然 现在 https stackoverflow com questions 32407509 how to get the milliseconds fro
  • 朱莉娅中未显示情节

    我有一个名为 mycode jl 的文件 其中包含以下代码here https juliastats org MultivariateStats jl dev pca using MultivariateStats RDatasets Pl
  • Julia:如何让多个工作人员访问模块中的函数?

    我有以下测试模块 MyMod jl 来在 Julia 中存储一些测试函数 一些核心函数是串行编写的 其他函数并行调用核心函数 module MyMod export Dummy distribute data getfrom recombi
  • 如何给DArray的元素设置值?

    我正在探索 Julia 的并行计算并尝试了以下方法 a dzeros 5 a 1 5 但刚刚收到此错误 setindex not defined for DArray Float64 1 Array Float64 1 嗯 我以为手册上说s

随机推荐

  • Inno Setup TInputQueryWizardPage (CreateInputQueryPage) 上如何减小两个输入框之间的行距

    我有一个TInputQueryWizardPage具有 8 个用户输入的页面 这增加了向导页面 https stackoverflow com q 11778292 但所有值仍然不可见 有没有办法减少两个值之间的行距 以便所有值都以当前向导
  • http-proxy-middleware 中的 60 秒超时

    我在使用时看到 60 秒超时chimurai http proxy middleware in Create React App我不明白它是从哪里来的 我正在端口 5000 上运行 API 并进行配置setupProxy js as con
  • 在 matplotlib 中自定义 x 轴

    In the figure below each unit in the x axis represents a 10mins interval I would like to customize the labels of x axis
  • 如何在午夜更新应用程序小部件?

    我的应用程序有一个小部件 显示今天的日期 需要在午夜更新 该小部件在清单中定义为
  • 为什么使用 UIPanGestureRecognizer 移动对象时会出现延迟?

    我要搬家了UIView对象使用UIPanGestureRecognizer 我在屏幕上拖动手指的次数 我向同一方向移动视图的次数 仅在 X 方向上 向左或向右 Y 方向不变 它工作正常 但是 非常明显 delay 这是处理的方法UIPanG
  • 重命名 IAM 角色

    我在创建 IAM 角色以允许 lambda 函数访问 cloudwatch 日志并创建 EC2 卷快照时犯了一个拼写错误 有没有办法重命名角色 无论是使用控制台还是 AWS CLI 创建角色后 您无法编辑 IAM 角色 这在多个地方都提到过
  • 将 FASTA 文件中的多个序列添加到 python 中的列表中

    我正在尝试组织具有多个序列的文件 在此过程中 我尝试将名称添加到列表中 并将序列添加到与名称列表并行的单独列表中 我弄清楚了如何将名称添加到列表中 但我不知道如何将其后面的序列添加到单独的列表中 我尝试将序列行附加到空字符串中 但它将所有序
  • C# 如何判断 DVD 驱动器托盘是否打开?

    我有一个用 C 编写的 DVD 读取和刻录应用程序 我希望能够检测空驱动器 无磁盘 和打开驱动器之间的区别 编辑 经过更多谷歌搜索后 我认为更好的问题描述是 我想访问驱动器托盘状态 打开或关闭 我可以用 ManagementObjectSe
  • ASP.NET MVC5/IIS Express 无法调试 - 代码未运行

    我启动 VS2013 VB Net MVC5 Web 应用程序 在 HomeController About 方法中设置断点并运行 开始调试 导航到 About 页面并接收消息 Code not running The current Th
  • gnu make“删除中间文件”

    我有以下规则 define compile c ECHO CC lt Q CC CFLAGS c MD o lt The following fixes the dependency file See http make paulandle
  • 从原始数据的字节数组中获取缓冲图像

    我正在使用JNA 我从我的 C 方法中获取原始数据的字节数组 现在我陷入了如何使用这个原始数据字节数组在java中获取缓冲图像的困境 我尝试了一些方法来使其成为 tiff 图像 但我没有取得成功 这是我到目前为止尝试过的代码 这里我的字节数
  • 将子视图延迟加载到非分页 UIScrollView 中

    我正在尝试实现一个类似幻灯片的 UIScrollView 它将填充目录页面的缩略图 选择缩略图将导致主 UIScrollView 移动到所选页面 目录可能包含 100 200 页 我只想在需要时才延迟加载它们 我已经在启用分页的 UIScr
  • 创建用于 XML 导出的多维对象

    我正在导入一个包含大量发票数据的 csv 文件 该数据需要根据供应商 ID 分组在一起 以显示每个供应商的标题以及该供应商 ID 的所有发票的总和 然后在其下方显示每张单独的发票 该项目的目标是导入 CSV 向用户显示数据 允许通过选择框更
  • Javascript 在选中的复选框上克隆此 div,在未选中的情况下删除此 div

    选中该复选框后 克隆正确的 div 并将其显示在示例中 div div 当取消选中该复选框时 删除克隆 并伴随localStorage 有人可以帮我解决这个问题吗 function onClickAvGamesCheckBox var ar
  • 使用 Blobstore API 和 Images API 直接从 GAE 中的 GCS 提供图像

    关于 Blobstore 和 Google Cloud Storage GCS 的许多问题和答案已有两三年历史 而这些年情况发生了巨大变化 GCS 不再是一项独立的服务 这是融合的 https developers google com s
  • ShortDynamicLink 不生成动态链接的短链接

    创建动态链接 DynamicLink dynamicLink FirebaseDynamicLinks getInstance createDynamicLink setLink Uri parse http shaharapp in se
  • 为什么java.lang.Object中的finalize()方法是“受保护的”?

    出于好奇 为什么是finalize 方法的访问修饰符被设为protected 为什么不能是public 有人可以向我解释一下这背后的具体原因吗 另外 我也了解到finalize 方法仅被调用一次 如果我在程序内部调用它两次 会发生什么 垃圾
  • Apple 是否为 SIRI 提供 API?

    Apple 是否有可能为 Siri 提供 API 如果我可以一边喝着咖啡一边说 User 嘿 Siri 你能打开愤怒吗 鸟类 4 级并为我扔第一只鸟 确保你至少打到一只绿猪 否则它就会从你的薪水中扣除 Siri 是的 当然 我会为你做的 这
  • Visual Studio Code,如何复制文件名

    在 Visual Studio 代码中 它有以下命令Copy Path and Copy Relative Path Ctrl Shift p gt 文件 复制活动文件的路径 有没有办法可以复制活动文件名而不是整个路径 如果没有办法复制活动
  • 更改 Julia 中的包目录

    我想更改 Julia 中的包目录 默认为 julia v0 4 我想要move it to opt julia v0 4 理想情况下 我想移动已安装的软件包 julia v0 4到新地点 但如果这是不可能的 我可以重新安装它们 我需要做什么