問題タブ [f2py]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
349 参照

python - f2pyでラップされたC関数はゼロのみを返します

f2pyを使用して単純なC関数をラップしようとしています。正常にコンパイルされますが、関数はゼロのみを返します。私はCの初心者なので、そこでばかげた間違いを犯すことは間違いありません。

たとえば、cファイルは次のとおりです。

pyfファイル:

0 投票する
0 に答える
375 参照

python - f2pyでfortranモジュールを使用すると、ipythonとipythonノートブックの奇妙な精度の違い

f2py でコンパイルされた fortran モジュールを使用すると、ipython と ipython ノートブックの間で奇妙な精度の違いが発生します。

私のFortranモジュールは次のとおりです。

コンパイル:f2py -c -m andre tt.f90

ipythonで私は得る:

これが望ましい出力です。ただし、ipython ノートブックで同じコードを使用すると、次のようになります。

私は何を間違っていますか?

0 投票する
1 に答える
841 参照

python - Pythonおよびf2pyエラー - NameError:グローバル名「inputUtil」が定義されていません

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

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

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

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

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

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

パンチダディ

0 投票する
1 に答える
486 参照

python - f2py 機能リリース GIL

f2py でラップされた関数を呼び出すと、グローバル インタープリター ロック (GIL) が解放されますか?

(私は自分で発見しようと喜んでいますが、どこから探し始めるべきかを知るには、でこぼこしたソースに精通していません)...

明確にするために、この質問に対する適切な回答は、numpy ソースのどこで a を探すべきかを知るのに役立つか、GIL がリリースされたPy_BEGIN_ALLOW_THREADS どうか (できればいくつかの証拠がある場合) を知らせてくれます。

0 投票する
3 に答える
688 参照

python - f2py を介した Python への Fortran 拡張: プロファイルを作成するには?

f2py (Ver. 2) でコンパイルされた Fortran (gfortran 4.4.7) で記述された Python (2.7.2) の拡張機能を使用しています。

を使用して Python 部分をプロファイリングできますcProfileが、結果から Fortran 関数に関する情報が得られません。代わりに、時間は Fortran 関数を呼び出す Python 関数に起因します。

ビルドするすべての Fortran オブジェクトに対して "-pg -O" フラグを有効にしました。また、次の方法で共有オブジェクトを作成する f2py 呼び出しでもf2py --opt="-pg -O"...

Fortran 情報を取得する方法についてのヒントも大歓迎です。

誰かが別のプロファイラーで同様のセットアップを使用している場合、私も興味があります。

0 投票する
3 に答える
8632 参照

numpy - Windows で f2py を使用して 64 ビット Python 拡張機能をビルドする

f2py.pyNumpy のスクリプトを使用して、Fortran ソースから Python 拡張機能を構築しようとしています。http://www.scipy.org/F2PY_Windows ( web archive )の手順に従っています。私のシステムは Windows 7 64 ビットで、主に Python 2.7.3 [MSC v.1500 64 ビット (AMD64)] を使用しています。私はhttp://www.lfd.uci.edu/~gohlke/pythonlibs/#numpyから Numpy-MKL 1.7.1 を持っています

これが私が試したことです:

  1. Fortran コンパイラを選択します。64 ビットの Python を使用しているため、64 ビットの Fortran コンパイラが必要です。MinGW-w64から、いくつかの個人用ビルドを試しました。
  2. 新しいcmd.exeシェルを開き、GCC コンパイラを抽出した場所へのパスを編集します。
    • set PATH=%PATH%;c:\gnu\mingw64\bin
    • set C_INCLUDE_PATH=C:\gnu\mingw64\include
  3. f2py.py次のコマンドでビルドを試してください。

    C:\Python27\python.exe C:\Python27\Scripts\f2py.py -c --fcompiler=gnu95 --compiler=mingw32 -lmsvcr90 -m foo foo.f90

出力は次のとおりです ( でノイズ ラインを削除<--snip-->)。

これを初めて実行すると、次の 3 つの新しいファイルがビルドされることに注意してくださいC:\Python27\libs

  • libmsvcr90.a
  • libpython27.a
  • python27.def

他に何かインストールする必要がありますか? に他のオプションを提供する必要がありますf2pyか? より一般的に言えば、GNU コンパイラから MSVC ビルド Python の拡張機能をビルドすることは可能ですか?

0 投票する
2 に答える
780 参照

python - f2py: モジュール内の定数の奇妙な動作

Fortran モジュールでグローバル定数を操作しているときに、f2py の奇妙な動作を発見しました。

次のようなファイルtest.f90があるとしましょう

これを f2py でラップすると、

そして走っている

私は得る

これはあなたが期待するものです。real ステートメントと real*8 ステートメントはどちらも同じように動作します。

私の実際のプロジェクトでは、倍精度の明示的な使用を指定して、コンパイラ フラグを使用して Fortran コードをコンパイルする必要があります。Fortran では、これで問題なく動作します。上記のコードを次のようにコンパイルすると

私は結果として得ます

これは実際には奇妙です。最初のケースではグローバル変数は初期化されず、値はゼロです。これはバグですか、それとも f2py で倍精度の明示的な処理を指定する別の方法がありますか?