如何在Python程序中使用Mathematica函数?

Gar*_*Dan 10 python unix wolfram-mathematica mathematica-8 mathlink

我想知道如何从Python调用Mathematica函数.

我很欣赏一个例子,例如,使用Mathematica函数Prime.

我搜索过MathLink但是如何在Python中使用它对我来说有点模糊.

我试图使用一个名为pyml的Mathematica-Python库,但我没有成功,也许是因为这个lib看起来很旧(在教程中说Mathematica 2或3).

尝试编译源代码Wolfram/Mathematica/8.0/SystemFiles/Links/Python但在使用python 2.6时出现了几个错误(文档说只应该对python 2.3起作用).

Pythonika很有趣,但看起来只是在Mathematica笔记本中使用,我想编写.py调用Mathematica函数的文件.

那么,有人知道编写使用Mathematica函数的python程序的好方法并且可以给我一个例子吗?

Gar*_*Dan 3

我找到了解决办法

脚步:

1-创建一个名为runMath的脚本,其内容为:

#!/usr/local/bin/MathematicaScript -script

value=ToExpression[$ScriptCommandLine[[2]]];

(*The next lime prints the script name.*)
(*Print[$ScriptCommandLine[[1]]];*)

Print[value];
Run Code Online (Sandbox Code Playgroud)

2-我授予该文件执行权限。

sudo chmod +x runMath
Run Code Online (Sandbox Code Playgroud)

3-将文件移动到执行路径

sudo mv runMath /usr/bin/
Run Code Online (Sandbox Code Playgroud)

4-创建一个名为run的新脚本,其内容为:

#!/usr/bin/python
from subprocess import *
from sys import *

command='/usr/bin/runMath'
parameter=argv[1]

call([command,parameter])
Run Code Online (Sandbox Code Playgroud)

5-移动到执行路径

sudo mv run /usr/bin
Run Code Online (Sandbox Code Playgroud)

6-最后,测试一下:

$run Prime[100]
541

$run 'Sum[2x-1,{x,1,k}]'
k^2

$run Integrate[Log[x],x]
-x + x*Log[x]

$run 'Zeta[2]'
Pi^2/6
Run Code Online (Sandbox Code Playgroud)

您可以使用或不使用'. '带空格的命令需要它们。

$run 'f[n_] := f[n] = f[n - 1] + f[n - 2]; f[1] = f[2] = 1; Table[f[n],{n,5}]'
{1, 1, 2, 3, 5}
Run Code Online (Sandbox Code Playgroud)

快乐的!