2013-10-04 134 views
3

我试图运行使用numpy.f2py简单的Fortran子程序上描述的:http://docs.scipy.org/doc/numpy/user/c-info.python-as-glue.html#calling-f2py-from-pythonf2py:找不到可执行文件C:Python27pythonw.exe可执行文件C:Python27pythonw.exe不存在

当我尝试编译(f2py.compile(source, modulename='add') )的蟒蛇,我得到了以下错误:

"Could not locate executable C:Python27pythonw.exe 
Executable C:Python27pythonw.exe does not exist" 

寻找这个文件我发现C:\Python27\pythonw.exe确实在我的系统存在,因此可以将它可能是与路径的问题?

无论如何,有关如何使我的代码工作的任何建议?

+1

错误消息没有斜杠。也许它在目录“C:”中查找名为“Python27pythonw”的可执行文件? – Kevin

+0

是的,我认为这是..但我能做些什么呢? – user2300783

+0

我提出了这个问题,因为我有完全相同的问题。不知何故,f2py会得到一个错误的可执行文件名称,或者在进程中丢失双斜杠。我查看了源代码,但我无法确定它来自哪里。我想这个问题肯定存在于f2py的__init__.py文件中。奇怪的是,从命令行调用f2py确实有效。 PS:相同的代码适用于Ubuntu –

回答

2

我发现问题的快速修复。但是,我不能保证在使用这个时不会有其他东西会破坏。

在文件:

C:\Python27\Lib\site-packages\numpy\f2py\__init__.py 
符合40

,改变

s,o = exec_command(c) 

s = os.system(c) 

看来,主要错误在于numpy.distutils.exec_command,其中调用python时似乎省略了反斜杠。再一次,我可能会用我不明白的力量,用os.system调用替换更多涉及的exec_command。但它适用于我。

0

另一种方法没有s = os.system(c) “丢失” ooutput)是s,o = exec_command(c)status, output = exec_command(c)之前实现

c = c.replace("\\", "\\\\")