【问题标题】:Sublime + IJulia: ZMQ library not foundSublime + IJulia:未找到 ZMQ 库
【发布时间】:2015-05-30 01:01:33
【问题描述】:

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

我尝试从 Julia 那里找到 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

我打开Package settings - IJulia - user,修改了这一行的路径:

    "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 存在于 2 个地方: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

Sublime 停止抱怨 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 对我来说:

“窗口”:{ "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。 (他们俩都解雇了这个问题,并自己找到了解决方案。)

【问题讨论】:

  • 我认为您可以从您的问题中删除解决方案并创建一个答案。干得好!
  • @Impon_de_Rable 我做到了。谢谢你的提醒。

标签: sublimetext3 julia


【解决方案1】:

简要回答:

未找到 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 的早期探索和解决方案。如果有人在上述任何步骤上遇到困难,请告诉我。

【讨论】:

  • 对于“ZMQ Library Not Found”问题,您可以通过 Julia 找到 ZMQ 库路径(如您所描述),然后简单地编辑 IJulia 配置文件(Sublime > Preferences >包设置 > Sublime-IJulia > 设置 - 默认)并更正“zmq_shared_library”路径的值。
猜你喜欢
  • 1970-01-01
  • 2015-06-18
  • 1970-01-01
  • 1970-01-01
  • 2014-11-20
  • 2015-05-28
  • 2017-05-02
  • 2014-04-10
  • 1970-01-01
相关资源
最近更新 更多