Sublime + IJulia:未找到ZMQ库

时间:2015-05-30 01:01:33

标签: sublimetext3 julia

我为崇高安装了IJulia包。当我开始崇高时,我得到了ZMQ shared library not found...

我试图从朱莉娅那里找到ZMQ:

julia> using ZMQ

julia> println(ZMQ.zmq)
C:\Users\Nick\.julia\v0.3\WinRPM\deps\usr\x86_64-w64-mingw32\sys-root\mingw\bin\libzmq.DLL

我打开包设置 - IJulia - 用户,修改了这一行中的路径:

    "zmq_shared_library": "~/.julia/v0.3/WinRPM/deps/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libzmq.dll",

重新启动sublime,我得到了这个:

Unable to find an entry point ... libstdc++-6.dll

我应该做什么?

环境:

Windows 7, 64-bit
Julia v"0.3.8"
Sublime text 3

更新 - 内核死亡

我发现这里存在一个问题:

https://github.com/quinnj/Sublime-IJulia/issues/64

引用:

  

tildebyte于2月28日发表评论

     

回答我自己的问题:libstdc ++ - 6.dll存在于两个地方:Sublime   文本3 Beta \ Data \ Packages \ IJulia \ windeps和   .julia \ V0.3 \ WinRPM \ DEPS的\ usr \ x86_64的-W64-的mingw32 \ SYS-ROOT \ MinGW的\ bin中。   即,与插件一起发货的版本与该插件不匹配   libzmq与之相关联。我通过复制ZMQ的libstdc DLL来修复它   从mingw \ bin进入插件的windeps目录。所以,是的,我同意:   @ M-Marz libzmq可能与插件不匹配或者他有   另一个libzmq在路径的某个地方,ST首先找到它。

所以我尝试将libstdc++-6.dll.julia\v0.3\WinRPM\deps\usr\x86_64-w64-mingw32\sys-root\mingw\bin复制到Sublime Text 3 Beta\Data\Packages\IJulia\windeps

崇高停止抱怨未找到ZMQ库或无法找到切入点;但是,当我尝试Ctrl-shift-p, open ijulia时,我得到***kernel died***

我搜索了我的系统,发现有几个libstdc++-6.dll用于几个单独的应用程序:Julia,Evernote,VLC ......

我怎么能弄清楚出了什么问题?

更新 - "内核死了"解决了

我在这里发现了同样的问题:

https://github.com/quinnj/Sublime-IJulia/issues/60

感谢@GregPlowman:

  

最后,经过多次游戏,我成功获得了Sublime-IJulia   在Windows上工作。

     

似乎某些文件路径的处理方式不同。 (也许有些人   Windows直接使用,其他人由Julia进行一些解析吗?)。

     

无论如何,需要注意Windows上的文件路径:

absolute or relative
quoting entire pathname (especially important if path name has spaces)
path separators ( forward or back slash / vs \ )
     

我玩了许多组合,真的很困惑。   但是我认为Julia可执行路径应该是绝对的,引用   (如果路径名中有空格)并使用反斜杠。 ZMQ和内核路径名   可以是相对的,应该是不带引号的,并使用正斜杠分隔符。

     

这是来自Sublime用户设置文件的Windows摘录   对我来说:

     

" windows":{       " zmq_shared_library":"〜/ .julia / v0.3 / ZMQ / deps / usr / lib / libzmq.dll",
      "命令":[           {               " command_name":"默认",               " julia":" \" C:\ Program Files \ Julia-0.3.5 \ bin \ julia.exe \"",               " julia_args":"",               " ijulia_kernel":"〜/ .julia / v0.3 / IJulia / src / kernel.jl"           }       ]}

     

请注意,引用路径名称时使用\",并使用反斜杠路径   分隔符使用\。

     

干杯,格雷格

经验教训

当一个开放式软件出错时,找到解决方案的第一个地方就是来自github的问题。感谢@tidlebyte和@GregPlowman。 (他们两个都解决了这个问题,并自己找到了解决方案。)

1 个答案:

答案 0 :(得分:2)

简要回答:

未找到ZMQ库的解决方案

第1步:

(1)从IJulia包装设置中复制所有内容 - 默认为包装设置 - 用户。

(2)查找ZMQ lib路径

julia> using ZMQ

julia> ZMQ.zmq
"C:\\Users\\Nick\\.julia\\v0.3\\WinRPM\\deps\\usr\\x86_64-w64-mingw32\\sys-root\\mingw\\bin\\libzmq.DLL"

(3)根据(2)修改zmq_shared_library路径。

第2步:将libstdc++-6.dllC:\\Users\\Nick\\.julia\\v0.3\\WinRPM\\deps\\usr\\x86_64-w64-mingw32\\sys-root\\mingw\\bin\\复制到C:\Users\Nick\AppData\Roaming\Sublime Text 3\Packages\IJulia\windeps。 (是的,覆盖。)

内核死亡解决方案

修改IJulia包设置中的路径 - 用户

"windows": {
    "zmq_shared_library": "C:/Users/Nick/.julia/v0.3/WinRPM/deps/usr/x86_64-w64-mingw32/sys-root/mingw/bin/libzmq.DLL",
    "commands": [
        {
            "command_name": "default",
            // "julia": "julia-readline.exe",
            "julia": "\"C:\\application\\Julia-0.3.8\\bin\\julia.exe\"",
            "julia_args": "",
            "ijulia_kernel": "~/.julia/v0.3/IJulia/src/kernel.jl"
        }
    ]
}

特别注意路径上的引号。特别是\"引用整条路径。

再次感谢@tidlebyte和@GregPlowman的早期探索和解决方案。如果有人遇到上述任何一个步骤,请告诉我。