0

f2py (inputUtil.pyd) を使用して Python で Fortran コードをコンパイルしました。この関数をメインの Python コードにインポートし、文字列から 2 つの文字 (locationAID と locationBID) をこの関数に渡します。

エラーメッセージは次のとおりです。

>>> Traceback (most recent call last):
  File "C:\FROM_OLD_HD\SynBio\Contact 5-23-12\contactsource_workingcopy\python\main.py", line 234, in batchExecute
    self.prepareProteins(tempList[1].replace("protA: ",""),tempList[2].replace("protAID: ",""),tempList[3].replace("protB: ",""),tempList[4].replace("protBID: ",""))
  File "C:\FROM_OLD_HD\SynBio\Contact 5-23-12\contactsource_workingcopy\python\main.py", line 668, in prepareProteins
    total = inputUtil(locationAID,locationBID)
NameError: global name 'inputUtil' is not defined

これが私のメインのpythonコードの一部です:

#import fortran modules
from contact import *
from inputUtil import *

....
def prepareProteins(self, locationA, locationAID, locationB, locationBID):
    self.output("Generating temporary protein files...")
    start_time = time.time()

    shutil.copyfile(locationA,"."+os.sep+"prota.pdb")
    shutil.copyfile(locationB,"."+os.sep+"protb.pdb")


    total = inputUtil(locationAID,locationBID)
...

以下は、f2py を使用して Python に変換した fortran コードの一部で、この関数に渡される文字を示しています。

     subroutine inputUtil(chida,chidb)
c
       integer resnr,nbar,ljnbar,ljrsnr
       integer resns,nbars
       integer resnc,nbarc
       integer resnn,nbarn
c
       integer numa,numb,ns,n
c
       character*6 card,cards,cardc,cardn,ljcard
c
       character*1 alt,ljalt,chid,ljchid,code,ljcode
       character*1 alts,chids,codes
       character*1 altc,chidc,codec
       character*1 altn,chidn,coden
       character*1 chida,chidb
....

f2py はうまく機能したので、それは問題ではないと思います。私はPythonを学んでいます-私は昔のFortranプログラマーです(パンチカードの日にさかのぼります!)。ですから、オッサンが従うことができる何かで応答してください。

助けてくれてありがとう。

パンチダディ

4

1 に答える 1