最近想用Julia的PyPlot画散点图,
但是要用PyPlot的话呢,必须安装PyCall包,
但是。。。一直安装不上!
请求社区的大神们能支援我解决该问题,
也好让其他新手们遇到同样的问题彻底解决该问题。
我的辛酸过程如下:
1.使用Pkg.status(),可以看到PyCall和PyPlot是安装上去了的。但是在用using PyPlot或PyCall的时候就出现一大堆错误了,详细错误如下:
2.使用Pkg.build(“PyCall”),依旧一大堆错误,详细错误如下:
3.看到错误代码堆里有出现关键字,
比如.NET Fram 3.0或更迟的版本之类的提示,然后去控制面板看是否安装了,没错啊,有安装啊。
4.然后查看Python的环境变量,也是有啊。
5.然后在Julia交互界面输入:
ENV[“PYTHON”]=“pythoncommand”
Pkg.build(“PyCall”)
为什么还是不行呢?气死我了!
6.至此,一直未解决!!!
请求各位大神们Help me,please!
1 个赞
你设置了PYTHON
环境变量吗?我看你只是加了个PATH
而已
仔细看了一眼它说的PYTHON="pythoncommand"
的意思是“把我改成python命令的路径”,谁让你照抄了…
用WSL也得(effectively)配置环境变量的呀 和系统没关系
是这样吗?Julia>ENV[“PYTHON”]=“C:\Users\Administrator\AppData\Local\Programs\Python\Python36”
我的python.exe在这个目录下
我可能或者是一个白痴。
理论上是这样的,带上python.exe。你试一下
搞定!是这样哦,
ENV[“PYTHON”]=“python.exe”
Pkg.build(“PyCall”)
嗯,好像有点不对劲![Info:Precompiling 。。。。。]
预编译是什么意思?
1 .卸载JuliaPro v1.2.0-1…
2 .把所有关联JuliaPro的文件夹全删除…
3 .重启电脑…
4 .打开之前安装的Julia v1.2.0.exe桌面生成的julia.exe快捷方式
【注:发现和安装的JuliaPro v1.2.0-1.exe没有什么卵关系,都是独立的,只不过JuliaPro依赖Atom的IDE而已,在julia.exe的REPL交互界面(类cmd窗口的那种界面)安装的包根本不会关联到JuliaPro v1.2.0-1里】
5 .using PyPlot
using PyCall
咦!竟然不会弹出[Info: Precompiling …]了
真是见了鬼了咯!
几乎一整天都在弄这个PyCall,最终还是弄好了。
我发现Julia语言生成散点图比Python快多了,还不卡,
而用Python的Matplotlib库画大量数据的散点真是卡得一比
(特别是拖动图片那感觉真TM不爽)。
Julia还好,不错。
让人很不解的是,用同样的方法在JuliaPro的REPL里安装PyCall同样令人心烦,
Pkg.add(“PyCall”)相当于下载(至少我是这么认为的)
Pkg.build(“PyCall”)相当于编译(至少我是这么认为的)
所以PyCall都已经下载了,难道Pkg.build(“PyCall”)的时候也要连接网络的吗?
所以我就Pkg.add和Pkg.build还有Pkg.status[看安装了什么包,里面的清单列出来了不代表可以使用]
所以当你using PyCall的时候可能又有什么错误
然后你不得不又继续你的add和build直到using PyCall不会弹出错误为止。
我不知道这是什么原因,反正我就重复几次操作才能安装上。
还有不知道Pkg.status()这个明明列出了安装以下的包,可是你using的时候就有问题,
有问题你就不要列出来嘛!真是的。
经过:
最后,我的PyPlot不能用。继续摸索中…
都不行哦,报错哦。
大哥 Windows路径是反斜杠 你在字符串里用反斜杠要转义成\\
ENV["PYTHON"]="C:\\Path\\To\\Your\\Python\\Executable.exe"
之所以你写python.exe
能运行,是因为你把它所在的文件夹加了PATH
。它的本质就是去运行PYTHON
这个环境变量给定的命令行,来启动Python。
1 add
只是把包clone
到本地,build
的时候有些包会从网络下载二进制依赖项,网络不好会导致build
失败。
2 status
显示的是你add
的包(当前的Project.toml
列出的依赖项),和build
状态无关,有包没build
成功你就再运行一次build
就可以了,不用装了删删了装。
3 build
的本质是运行每个包里的build.jl
,它愿意干啥就干啥,你不爽就给包作者提issue让他找个靠谱BinDeps方案。
4 模块第一次using
的时候会预编译,这是符合预期的。
5 我建议你稍微补一下操作系统和命令行的基础知识,很多时候你的问题是操作不当,不是Julia的问题。而且以后你会遇到更多的问题。
1 个赞
太真实了,要是早点看到这篇文章,我也不会被折磨这么久。
您好!请问using PyCall不会报错了,但是using PyPlot会报出ERROR: LoadError: InitError: could not load symbol “Py_CompileString”:
The specified procedure could not be found.请问怎么解决呢?
xjllhy
2022 年1 月 26 日 01:26
18
补充一条,我在32位anaconda的环境下,PyCall这个包build就死活不过。但64位anaconda的环境下就没问题,不知道跟anaconda的版本是否有关系。
感谢,今天遇到了一下就找到这个帖子了。说实话仔细看一下报错也好解决,但还是帮大忙了!