2013-10-04 177 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("\\", "\\\\")