编辑:它告诉shell,子进程模块没有为PATH变量分配与我的系统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"]。不幸的是,这并没有什么不同。
发布于 2020-08-02 05:50:32
在python中使用os.system怎么样?
import os
os.system('maxima -b testMaxima.txt')还要确保在testMaxima.txt文件所在的位置运行此python脚本
https://stackoverflow.com/questions/63210318
复制相似问题