julia0.6版本,pkg包导入失败

各位大神#(委屈) #(委屈) ,本人研一小白一枚,最近导师让我跑开源代码,在Ubuntu系统上,安装了0.6版本的Julia后,不能执行. jl文件,一直提示让我输入pkg. add(“pkg”),但我输入之后,一直显示unknown pkg 在,,已经三天了,我还没找到解决办法,,恳请知道的大神帮帮忙#(摊手) #(摊手) #(摊手) 【图片】【图片】

图呢?

都是开源包了,发地址。
出问题有报错信息就复制文本发上来。

你的描述是不精确的,Pkg 是个内置的包,不需要添加。

一般来说是一个包,直接 using 就好,执行 .jl 文件还是比较少见的。除非就是单文件的。

以下是我源代码的指令
git clone https://github.com/sisl/ngsim_env.git
julia ngsim_env/julia/deps/build.jl
我是按照这两个指令在Ubuntu终端输入的,但不能执行. jl文件,一直显示让pkg. add(pkg)
我的这个julia是0.6.2版本的

我想了下,应该是 0.6 太老了。看你这个包也是最近的,应该用 julia 1.3.1(最新稳定版)或者 1.0.5(长期支持版) 吧。

安装操作还是按照他的说明来吧:

1 个赞

大神,恐怕会有点冲突,我这个源代码指令是先安装作者给的版本julia,接着再配置我刚才输的那两行指令环境,作者给出安装指令代码如下

这是我输入之后得报错


已经三四天了,查询不到任何解决办法

我看 github 上的安装说明不是这样的啊。
你用的版本不同?

using Pkg 之后就不会报你那个错了。你是不是把装依赖那步都跳过了

不是的,,,我的整个指令操作是这样的,我是先安装好julia后,然后再需要下载那个ngsim的数据集,最后需要执行. jl文件,先输入的指令如下

后输入的指令如下


然后我就卡在蓝色区域,一直显示有错误了

不知道你看的是那一版的安装教程。如果你坚持要按照教程上的来。
去改 build.jl 加上 using Pkg

新版的第一行就加载了 Pkg 报当然不会报错。


如果你是直接 git clone 的那么就对应 github 上的最新版。当然要按照最新的安装教程来了。

不过我看 github 上已经没有 0.7fixes_in_progress 这个分支了,估计合并了。
感觉换分支那一步会报错。

github 主分支的安装教程摘录:

source activate rllab3
git clone https://github.com/sisl/ngsim_env.git
cd ngsim_env
git checkout 0.7fixes_in_progress # 这一步可能会报错 / 是多余的
sudo apt-get install libgtk-3-dev
#   NOTE: If you do not have sudo access, you can probably get away with not doing this, there just may be an error when adding AutoViz.

# enter a julia interpreter and install dependencies.
#   NOTE: I got some weird error with one of the packages, I think it was AutoViz, where there was a line ending before expected or something like that.
#   I just repeated the add instruction and it seemed to work fine.
julia
  # Add dependencesjulia
  using Pkg
  Pkg.add(PackageSpec(url="https://github.com/sisl/Vec.jl"))
  Pkg.add(PackageSpec(url="https://github.com/sisl/Records.jl"))
  Pkg.add(PackageSpec(url="https://github.com/sisl/AutomotiveDrivingModels.jl"))
  Pkg.add(PackageSpec(url="https://github.com/sisl/AutoViz.jl"))
  Pkg.add(PackageSpec(url="https://github.com/sisl/AutoRisk.jl.git", rev="v0.7fixes"))
  Pkg.add(PackageSpec(url="https://github.com/sisl/NGSIM.jl.git"))
  Pkg.add(PackageSpec(url="https://github.com/sisl/BayesNets.jl.git"))

  # Add the local AutoEnvs module to our julia environment
  ] dev ~/ngsim_env/julia
 
  # make sure it works
  using AutoEnvs

后面还有

我把build. jl文件里的第一行改为了using Base. Pkg ,可以执行了,,但是我现在又遇到麻烦了,现在有一个vec的文件,我这边显示没有找到,我用find指令查找,确实真的没有,请问您知道应该怎么办吗?

因为这是一个包,你不装当然没有。

看你还是坚持用 0.6 估计是有祖传代码,不想改。
可以尝试按时间去找对应依赖的特定版本装上,最新版本肯定是装不上的,或者翻翻对应包的 release 或者 git log 找找支持 0.6 的最后是哪一版。

坚持要用 0.6 最高效的方法是去问实验室的师兄,或者导师,看有没有现成的环境。
你在社区问,大家肯定都是推荐用 1.x 稳定版本。然后更新老代码。


我是推荐直接用 1.3.1 + github 的最新版,然后直接重写老代码。这个比慢慢试错然后升级代码来的快。
话说有新版本的包用已经很幸福了,最坑的是包还是 0.6 的,你又不得不用,还得去更新包。

谢谢,,原因我找到了,在build. jl文件,有对应的包下载地址,我下载后把它放在文件夹里了,主要导师让我弄的是新算法,配的也是新环境。

大神您好,我又要向您请教一个问题。,这几句代码我试了一直报错,我打算手动克隆出对应的版本,但是我不太清楚,这个最下面一行有很长的数字,那个版本应该怎么寻找?我的源代码指令中,没有找到这几个文件的网址截图000

下面那几个都是 git 的指令,你之前 clone 对了 git repo 再执行他们应该是没问题的。
有报错也可以发一下,不过我建议你先找几篇 git 的教程看看,有个大概的了解。


我的意思是 0.6 已经可以说是淘汰了,一是没人维护、二是你出了问题大家很难帮你,因为实在是有点老了。我自己是保留了 0.7 的环境用来给 0.7 以下版本的代码升级。因为 0.7 会提出 warning 告诉你改哪里。

你们真的是配新环境就应该用 1.3.1 最新的稳定版,而且我看你提到的包已经升级到了 1.0+。如果是老代码再1.0+上不能运行,用 0.7 过度一下改一下就好了。

从学术出发,我也推荐用新版。julia 不像是 fortran 77 的情况,fortran 至少经过了时间的检验,他的包和代码大家都认可他们的结果,,不更新代码是没必要。

julia 是一个新生的语言,一直在更新,有些函数的结果是不准确的,在老版本上更是如此,所以你很有可能碰到 julia 自己的 bug。

你可以看看 0.7 的更新日志有多长:

1.0+上还有函数的边界值处理不太好,容易搞出 NaN,论坛里也有人发帖提问为什么循环计算出现了 NaN,这个我到现在都还没找出原因。

非常感谢您,我现在的任务是,急于想把这个开源代码跑通。因为我需要看他的最终结果符不符合我的研究方向,如果不符合会马上换掉,如果符合,就会开始从理解代码入手一点点学习。但目前我已经卡在环境配置上面快三个星期了。你说的版本问题我明白,我想着现在就按作者的思路先进行下去,出现错误的话就一点点查询解决,对于我这种代码小白,这样可能比较快。如果我修改老代码的话,可能会更需要大量时间。您看下面两幅图,一张是报错图,一张是源代码指令图,我需要用AutoEnvs,但是出现的错误并没有由于HDF5导致的错误666666.PNG

这个是源指令图

AutoEnvs 不是一个能一键安装的包。

虽然你按照旧版的装,但是新版的安装教程还是能说明不少问题。

还是卡在这一步。下面先是 “Add dependencesjulia“ 装了依赖,注意都是用连接的形式装的 直接 add 估计是不行。

然后开了开发环境 ] dev 因为 AutoEnvs 没弄成一个 .jl git repo,最后才是 using AutoEnvs

同样的你得先把依赖都装上,然后按照以前激活开发环境的方式准备好,最后 using 就行了。
add 没啥关系。0.6 的包估计也没几个能直接 add 的都基本得手工指定版本号(或者URL)。

非常感谢您,说实话,这个用老版本Julia,问题的真的太多。我刚才试了一下,可能是不是还是老版本的问题,居然还会报错,我能不能把,你给的几个模块的网址,直接克隆或者下载,最后放到ngsim_env/Julia中

PkgSpec 应该是新版的东西,用

Base.Pkg.clone( URL )