我有以下Fortran代码:
Sub Main()
Console.OutputEncoding = System.Text.Encoding.Unicode
Console.WriteLine(ChrW(&H26C0))
Console.ReadKey()
End Sub
我不想使用命令 !routines.f90
module mymodule
contains
function add(a, b)
real(8), intent(in):: a
real(8), intent(in):: b
real(8) :: add
add = a + b
end function
end module
,而是要从python脚本中进行编译,如下所示:
python -m numpy.f2py -m routines -c routines.f90
但是当我尝试执行此脚本时:#main.py
import numpy as np
import numpy.f2py as f2py
with open(r'routines.f90', 'r') as f:
source = f.read()
f2py.compile(source, modulename='routines')
print('OK')
,我收到以下错误:
python main.py
你能告诉我问题是什么吗?
答案 0 :(得分:3)
open(r'routines.f90', 'r')
打开文件以读取 text (又名str
),但是,显然f2py.compile
要求其第一个参数的类型为{{1 }}。为此,请以二进制模式打开文件:
bytes
(此外,open(r'routines.f90', 'rb')
中不需要第一个r
,尽管变化不大,您也可以执行r'routines...'
)。