【发布时间】:2017-05-30 04:26:37
【问题描述】:
我有一个使用名为 flopy 的包的 python 脚本。我的脚本会为一个 fortran 可执行文件生成一系列输入。 Flopy 将这些写入文本文件,然后调用 fortran 可执行文件,后者使用文本文件运行模型。
我使用的是 mac (OSX),我从 python.org 下载了 python 2.7,即我没有使用 Apple 系统版本的 python。我使用的 python 版本在 Library/Frameworks/Python.Frameworks/
如果我从终端窗口调用它,我可以运行我的脚本(通过输入:
Python myscriptname.py
但是,如果我通过 IDLE(我下载的 python 附带的版本)运行我的脚本,它会返回一个错误:
Traceback (most recent call last):
File "/Users/neilthomas/RotatedModel_v4_Tr_mfnwt.py", line 355, in <module>
success, mfoutput = mf.run_model(silent=False, pause=False)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/flopy/mbase.py", line 638, in run_model
normal_msg=normal_msg)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/flopy/mbase.py", line 1034, in run_model
stdout=sp.PIPE, stderr=sp.STDOUT, cwd=model_ws)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1335, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
文件“mfnwt”绝对存在。我确定我遗漏了一些明显的东西,但是我需要做些什么来允许 IDLE 通过它使用的 shell 运行程序/子进程吗?谢谢。
【问题讨论】:
-
"文件 'mfnwt' 绝对存在"...你确定吗?
-
你是怎么闲着的?你使用相对文件名吗?您当前的工作目录可能不是您认为的那样,这将影响相对路径名。打印
os.getcwd()看看它是什么。 -
@Rishav:是的,文件 mfnwt 确实存在——如上所述,我可以通过终端运行相同的脚本。
-
@tdelaney:我通过右键单击脚本并使用 IDLE 打开 python 脚本来运行 IDLE。该脚本与文件“mfnwt”位于同一文件目录中。
-
我不知道具体的OSX,但是右键通常不会设置当前目录。尝试右键单击
import os;print(os.getcwd());input("end")之类的简单脚本以查看它是什么。
标签: python macos python-2.7 subprocess flopy