f2py错误或丢失库?

时间:2015-08-30 12:15:50

标签: python fortran f2py

我正在使用f2py来实现一些fortran 77例程。具体来说,我想为2D数组实现逐列自动缩放功能。

      SUBROUTINE AUTOSCALE(E,NR,NC,EA,N,M,MX,SX,SSX)
      INTEGER NR,NC,N,M,I,J
      REAL*8 E(NR,NC),EA(N,M),MX(M),SX(M),SSX(M)
      DO 1 I=1,NC
          MX(I)=0D0
          SX(I)=0D0
1           SSX(I)=0D0
     DO 3 I=1,NR
        DO 2 J=1,NC
            MX(J)=MX(J)+E(I,J)
2           SX(J)=SX(J)+E(I,J)**2
3    CONTINUE
     DO 4 J=1,NC
        MX(J)=MX(J)/NR
        SX(J)=(SX(J)-NR*MX(J)**2)/(NR-1)
        SX(J)=DSQRT(SX(J))
4   CONTINUE
    DO 6 I=1,NR
       DO 5 J=1,NC
          EA(I,J)=E(I,J)-MX(J)
          EA(I,J)=EA(I,J)/SX(J)
          SSX(J)=SSX(J)+E(I,J)**2
5      CONTINUE
6   CONTINUE
    RETURN
    END

只有在我使用DSQRT调用注释该行时,例程才能正确转换为python。如果我用等效函数替换它,例如SQRT**(0.5)**(1./2.)我总是会遇到奇怪的链接错误。请参阅下面的详细信息。

  

找到可执行文件C:\ Program Files(x86)\ Microsoft Visual Studio   10.0 \ VC \ BIN \ link.exe mingw32.lib(lib32_libmingw32_a-pesect.o):错误LNK2005:已在MSVCRT.lib(pesect.obj)中定义的ValidateImageBase   mingw32.lib(lib32_libmingw32_a-pesect.o):错误LNK2005:   __FindPESection已经在MSVCRT.lib(pesect.obj)中定义了mingw32.lib(lib32_libmingw32_a-pesect.o):错误LNK2005:   __IsNonwritableInCurrentImage已经在MSVCRT.lib中定义(pesect.obj)创建库   C:\ Users \用户PolGia0 \应用程序数据\本地的\ Temp \ tmpvzoar0ou \发布\用户\ PolGia0 \应用程序数据\本地的\ Temp \ tmpvzoar0ou \ src.win32-3.4 \ foo.lib   和对象   C:\ Users \用户PolGia0 \应用程序数据\本地的\ Temp \ tmpvzoar0ou \发布\用户\ PolGia0 \应用程序数据\本地的\ Temp \ tmpvzoar0ou \ src.win32-3.4 \ foo.exp   mingw32.lib(lib32_libmingw32_a-pesect.o):错误LNK2019:未解决   函数中引用的外部符号__image_base   __FindPESectionByName。\ foo.pyd:致命错误LNK1120:1个未解析的外部

我不明白。在我的系统设置中可能出现了问题? 有什么建议?谢谢 PS如果它有帮助,我在Windows 7 64位PC上使用32位的Anaconda 2.3.0。

0 个答案:

没有答案