从Python脚本调用Maxima文件

2024-10-04 05:33:19 发布

您现在位置:Python中文网/ 问答频道 /正文

编辑:结果是shell子流程模块没有与我的系统shell相同的路径变量目录。因此,解决方案就是使用完整路径(通过which maxima找到)调用Maxima,或者更改subprocess.run()参数中的env={'PATH':maxima_paths}。正如@RobertDodier指出的,这不是Maxima的具体问题

我有一个名为testMaxima.txt的文件,其中包含以下Maxima代码:

write_data([[1,2,3]], "test.txt");

此Maxima代码在工作目录中创建文件test.txt

我希望使用Python脚本运行此文件。我不想手动打开Maxima(数学引擎)来执行此操作

我尝试的内容:我知道我可以使用maxima -b testMaxima.txt在命令行/终端中运行此文件,并且我尝试使用python模块subprocess用以下python代码模拟此代码:

import subprocess
subprocess.run("maxima -b testMaxima.txt", shell=True)

但这并不像它应该创建的那样创建新的test.txt文件。如果这有帮助,当我跑步时

>>> subprocess.call("maxima -b testMaxima.txt", shell=True)
127

我得到了127的输出。据我所知,这意味着终端无法找到给定的命令。但是,当我直接通过终端执行代码maxima -b testMaxima.txt时没有问题,所以我不确定为什么它找不到给定的命令。有人对我应该尝试什么有什么想法吗

提前谢谢你

编辑:根据@mkrieger的建议,我使用了一个字符串"maxima -b testMaxima.txt",而不是序列["maxima", "-b", "testMaxima.txt"]。不幸的是,这没有什么区别


Tags: 模块文件run代码test路径目录txt