[英]Using external data files in f2py
我有一些舊的fortran代碼,正在包裝並使用f2py
導入到python中。 fortran代碼依賴於位於同一目錄中的數據文件。 如果我在該目錄中啟動python,一切正常。
但是,如果我從其他地方導入該模塊,它將在本地查找文件,顯然找不到它們。
有沒有辦法告訴模塊在哪里執行fortran代碼(或其他巧妙的方法)?
我對f2py
不太了解,但看起來好像有命令行版本和模塊版本。
要使用命令行選項,我看到兩個選項:
對於包裝器,可以使用執行以下操作的bash腳本:
#!/bin/sh
dir=$(dirname $0) # gets relative path
dir=$(readlink -f $dir) # to get absolute
cd $dir
# Now call p2py
如果使用模塊版本,則可以在運行python化的fortran源之前使用os.chdir()
更改目錄:
fortran_file = "foo.f"
dir = os.path.dirname(os.path.abspath(fortran_file))
os.chdir(dir)
# Now run p2py against fortran_file
我能想到的唯一其他選擇是查看是否可以將路徑注入到fortran代碼中。 也許您可以閱讀代碼,更改內存中源代碼的路徑,然后對動態修改后的代碼使用f2py.compile()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.