我有一个正在移动到IaaS的Fortran exe文件。从控制台(Windows)中运行时,FORTAN exe文件运行正常,但是当我打电话的exe从瓶RESTserver(本地)的文件路径不工作,在我收到以下错误:open() - Fortran运行时错误:当使用Python/Bottle运行exe文件时,文件'不存在
At line 79 of file MainCalculator.f90 (unit = 61, file = '└')
Fortran runtime error: File '' does not exist
这里是我的Python /瓶代码以执行该Fortran的:
def model():
curr_dir = os.path.dirname(os.path.realpath(__file__))
exe = "Calculator.exe"
path = os.path.join(curr_dir, 'bin', 'fortan_model', 'Debug', exe)
a = subprocess.Popen(path, shell=False)
a.wait()
下面是代码抛出Fortran中错误的行:
open(UNIT=61, FILE=trim(adjustl(recipePath))//"Scenarios.txt")
其中,recipePath = '..\..\ourRecipes\OUR_recipes_082014\'
(在另一个.F90文件中定义)
看来文件路径被报告为ASCII值(文件=“└”),当该exe从命令行运行不发生。我认为这可能是相对路径,但它给绝对路径的错误,但与file = '≡f*☺└'
。
它还创建一个文件名' Scenarios.txt'
(与前面的空格)。
编辑:Fortran .exe读取输入的txt文件。每一行都被分配给一个变量。这从命令行按照预期工作,但是当从Bottle执行时,它将输入文件解析为空白字符。我是否需要授予Python读取文件的权限和/或打开内存中的输入文件?
尝试在'open'语句之前打印'recipePath'的内容。如果它包含一些奇怪的东西,请尝试找出原因。确保启用所有运行时检查和警告。 ('-fcheck = all')。 – 2014-08-28 15:28:07
我无法在Bottle控制台窗口中打印Fortran写入(*,*)语句,而我可以从Bottle Python脚本打印。 write(*,*)语句显示何时运行命令行,而不是通过Bottle脚本执行时 – Flash 2014-08-28 15:39:43
将它写入文件,或者使用调试器或其他。 – 2014-08-28 16:00:32