我有自己的 Julia 包,在 Julia 0.6 上运行良好。当我尝试升级到 Julia 1.0 时,我发现在 Julia 1.0 中添加我自己的包更加困难。我不能把它放在 pkg.dir() 下。在我的情况下,该包只是我本地磁盘上的几个文件,并且除了 Julia 本身之外不依赖于其他任何东西。我可以在新的包管理器中将它与“生成”和“激活”一起使用,但是,重新启动 REPL 后,我必须重做“生成”和“激活”。有没有办法永久安装该软件包?谢谢你!
我尝试将自己的包文件放在 JULIA_DEPOT_PATH/MyPackageName/src 下。我还尝试将文件放在 MyPackageName/random- Five-char/src/ 下。两者都不起作用。
但是,重新启动 REPL 后,我必须重做“生成”和“激活”。
事实上,你不必这样做。你试过了吗activate /your/package/path/package_name
代替activate package_name
?
(v1.0) pkg> generate ./MyPackgePath/MyPackageName
Generating project MyPackageName:
./MyPackgePath/MyPackageName/Project.toml
./MyPackgePath/MyPackageName/src/MyPackageName.jl
julia> using MyPackageName # it won't work because it's not in the default environment
ERROR: ArgumentError: Package MyPackageName not found in current path:
- Run `import Pkg; Pkg.add("MyPackageName")` to install the MyPackageName package.
Stacktrace:
[1] require(::Module, ::Symbol) at ./loading.jl:823
(v1.0) pkg> activate ./MyPackgePath/MyPackageName # activate the package's full path to change the current environment(v1.0) to the project environment(MyPackageName)
(MyPackageName) pkg> st
Project MyPackageName v0.1.0
Status `~/MyPackgePath/MyPackageName/Project.toml`
(empty environment)
julia> using MyPackageName # using MyPackageName in the project environment works fine
[ Info: Precompiling MyPackageName [b8c7b058-0e78-11e9-0963-a7719554d5c1]
有没有办法永久安装该软件包?
IIUC,您想要的是在默认环境中安装软件包(例如(1.0)
)。最简单的方法是dev /your/package/path/package_name
.
julia> using MyPackageName # using MyPackageName in the default evironment fails
ERROR: ArgumentError: Package MyPackageName not found in current path:
- Run `import Pkg; Pkg.add("MyPackageName")` to install the MyPackageName package.
Stacktrace:
[1] require(::Module, ::Symbol) at ./loading.jl:823
(v1.0) pkg> dev ./MyPackgePath/MyPackageName
Resolving package versions...
Updating `~/.julia/environments/v1.0/Project.toml`
[no changes]
Updating `~/.julia/environments/v1.0/Manifest.toml`
[no changes]
julia> using MyPackageName # after `dev`, it's working
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)