【发布时间】:2016-04-12 12:39:52
【问题描述】:
我想为 Abaqus 创建一个 Python 脚本,其中将使用 Scipy 库。不幸的是,Abaqus 没有那个库。它可以安装,但我想以不同的方式安装。
我的想法是编写一个接受参数的函数,将其传递给在 Abaqus 外部打开的新 Python 解释器,然后将输出返回到我的文件中。
我很确定它可能会完成,但我仍在学习 Python。请给我任何可以用来解决问题的提示。
【问题讨论】:
我想为 Abaqus 创建一个 Python 脚本,其中将使用 Scipy 库。不幸的是,Abaqus 没有那个库。它可以安装,但我想以不同的方式安装。
我的想法是编写一个接受参数的函数,将其传递给在 Abaqus 外部打开的新 Python 解释器,然后将输出返回到我的文件中。
我很确定它可能会完成,但我仍在学习 Python。请给我任何可以用来解决问题的提示。
【问题讨论】:
为了实现你想要的,你需要启动一个后台进程,它会执行一个 Python 脚本。这可以通过内置的subprocess 模块在 Python 中完成。
在最简单的情况下,你可以这样写:
import subprocess
process = subprocess.Popen(['python', 'your_script_name.py'])
process.wait() # If you want to stop caller until callee terminates
也可以检索子进程返回的结果,但你可以在其他线程中阅读更多内容:
请注意,在某些情况下,有必要通过删除 Abaqus 特定的环境变量来修改包含环境变量 (os.environ) 的字典的内容。否则启动子进程会出现一些问题。
如果您确实想将修改后的环境传递给新进程,Popen 有一个参数 env。
【讨论】: