各位大神#(委屈) #(委屈) ,本人研一小白一枚,最近导师让我跑开源代码,在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(长期支持版) 吧。
安装操作还是按照他的说明来吧:
我看 github 上的安装说明不是这样的啊。
你用的版本不同?
using Pkg
之后就不会报你那个错了。你是不是把装依赖那步都跳过了
不知道你看的是那一版的安装教程。如果你坚持要按照教程上的来。
去改 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文件,有对应的包下载地址,我下载后把它放在文件夹里了,主要导师让我弄的是新算法,配的也是新环境。
大神您好,我又要向您请教一个问题。,这几句代码我试了一直报错,我打算手动克隆出对应的版本,但是我不太清楚,这个最下面一行有很长的数字,那个版本应该怎么寻找?我的源代码指令中,没有找到这几个文件的网址
下面那几个都是 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导致的错误
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 )
- Package Manager Functions · The Julia Language
链接里就是老版的 0.6.4 的文档可以多翻翻