title: 让 mathematica 与 py & js 快乐的玩耍


安装 ZeroMQ

Win 用户

安装最新的 python, nodejs 以及 git

新建一个 sh 文件 i sec.sh , 里面写

#!/usr/bin/env bash
conda install pyzmq -yes || python -m pip install zmq
cd ~ && npm install zeromq && mv node_modules .node_modules
echo "Ctrl + C 退出" && sleep 86400

双击运行即可, 若跳警告, 统统无视即可

Win 不手操 %Path% 是没有 pip 的, 只有 python -m pip , 当初我学 python 被这个坑死了...

安装成功的话运行如下代码应该得到和我类似的结果

FindExternalEvaluators[][Delete[#, {#, 1, 1}&/@Range@Length@#]&]
py=StartExternalSession["Python"]
js=StartExternalSession["NodeJS"]

Linux 用户

Linux 用户不用教, 都是大佬, 肯定能自己搞定的!

Mac 用户

Mac 用户可以出钱请我装. 不知道写两行脚本售价 $99 有没有人买23333.

测试

嗯, 其实装完 git 就能跑 bash 了.

Bash[command_String]:=RunProcess[{
    "C:\\Program Files\\Git\\bin\\bash.exe",
    "-c",
    command
}, "StandardOutput"]
Bash["bash --version | head -1 | tr -d '\n'"]

就是怎么想怎么蛋疼, 我为什么要在 Mathematica 里用bash...

等会儿, 还是有点用的, 装个库什么的...

装个 numpy 用用先

可以看到下面的建议栏跳出来了, 说明数据类型已经自动转化为 Mathematica 支持的类型了, 上面的列表的写法也是Mathematica的列表写法.

试了下图片和函数都不能导出...那有什么意思啊...

有意思, Association 的原型果然是这个, 格式化用的是 Mathematica 的格式化, 因为按照浮点运算

> Math.log(1000) / Math.LN10
< 2.9999999999999996

文档里还有个运行 py 脚本的例子, 但是只能以字符串返回...那有什么意思...

点评

这玩意儿现在几乎没啥用, 这种功能 RunProcess + json + Interpreter 就能搞定

何况现在有了 WolframScript 我为什么不写 bash 脚本呢?

什么时候能交换绘制的图片啊, 函数啊, 神经网络啊什么的才牛逼了.

不过这个应该可以用来实现类似 Jupyter 的功能...

Notebook 左边这个小加号是能扩展的, 未来加个 Python 语言输入, Julia 语言输入也不是不可以啊...


Update 2018-09-10

一语成谶了啊, Mathematica 真的加入了 Python Cell 和 JavaScript Cell!