問題タブ [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 投票する
1 に答える
1342 参照

python - f2pyで配布可能なWindows Pythonモジュールを作成する

主にLinuxを使用して、pythonとf2pyでいくつかのコードを書きました。これはすべて正常に機能しますが、これを Windows ユーザーと共有したいので、必ずしも gfortran や gcc を持っていないユーザーに配布可能なモジュールを作成しようとしています。Windows XPボックスにアクセスでき、gfortranでmingwを使用しています。そのマシンでモジュールをコンパイルして使用できますが、他のマシンでは、作成された pyd には dll の libgcc と libgfortran が必要なようです。http://www.scipy.org/F2PY_Windowsの例を次に示します。

でコンパイル

これは、コンパイルしたマシンでは期待どおりに機能しますが、別のマシンにコピーすると、

依存関係ウォーカーを使用すると、libgcc_s_dw2-1.dll および libgfortran-3.dll の dll が見つからないことがわかります。ユーザーが gcc と gfortran を持っていると仮定せずに配布できる pyd を作成することは可能ですか? 私は両方のマシンで python2.7 を使用しています。両方とも 32 ビットです。1 つは XP、もう 1 つは Windows 7 です。

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

python - Fortran 拡張機能のコンパイル中のセットアップ スクリプトのエラー:「そのようなファイルまたはディレクトリはありません」

f2py を使用して、Fortran 90 ソースのセットを手動でラップすることができました。そのために、http: //docs.scipy.org/doc/numpy/user/c-info.python-as-glue.htmlで説明されているように署名ファイルを生成し、.so を取得できます。一部の Python インターフェイス ファイルから呼び出します。

ここで、Fortran 拡張機能を自動的にビルドするパッケージを作成したいと考えています。Fortran ソースと署名ファイルを含むフォルダーに追加されるのは、次の内容の setup.py ファイルだけです。

次に、virtualenv をアクティブ化し、パッケージをインストールしようとしました

しかし、最後に次のエラーが発生します。

setup.py を起動した後の最初の行は次のとおりです。

しかし、セットアップ プロセスは続行され、Fortran 拡張機能はコンパイルされたように見えます (表示される行は、f2py を手動で実行した場合と同じように見えます)。

オンラインで入手できる例から解決策を見つけようとしましたが、それらのほとんどは単純すぎて役に立ちませんでした。Python のパッケージングの経験がある人は、これについて私を助けてくれますか?

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

python - F2PY は ValueError を返します: 無効なバージョン番号 '4'。

Python は初めてで、既存の Fortran コードを使用して Python から実行できるようにしたいと考えています。オンラインの指示に従って、F2PY を使用して小さな「Hello world」Fortran プログラムをコンパイルしようとしています。

私はWindowsで作業しています。これまでのところ、Python 2.7.3、NumPy 1.6.1、SciPy 10.1、および MinGW 4.8 をインストールしました。

それから私は(とりわけ)試しました

これは、無効なバージョン番号を報告します。

ValueError: 無効なバージョン番号 '4'。

誰かが何がうまくいかないのか、これを実行するために何を変更する必要があるのか​​ を提案できれば、私は最も感謝しています. F2PY からの完全な出力は次のとおりです。

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

fortran - f2py と WRITE ステートメント

あまり複雑に思えないので、この答えを探してみましたが、成功しませんでした。古いFORTRANコードを使用して、Pythonに取り込んで使用できるようにしようとしています。その過程で、ファイル I/O に関するいくつかの問題に遭遇しました。これが f2py によってどのように処理されるかを理解しようとしています。gfortranを使用してUbuntu 11.10に取り組んでいます。たとえば、次のサブルーチンを使用しようとしていました。

次に、gfortran と f2py を使用してコンパイルします。

inout.so 共有ライブラリを作成します。次に、Python で簡単なテストを試します。

次に、Python を終了し、新しく作成された「テスト」ファイルを開きます。ファイルは空です。画面に問題なく印刷できますが、ファイルに印刷できないようです。任意のガイダンスをいただければ幸いです。f2py のドキュメントでは、WRITE ステートメントについて言及していません。

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

python - f2py: 異なるファイルに分散されたサブルーチンを使用する fortran モジュールをラップしますか?

前述の理由により、numpy でラップされたものではなく、Python で LAPACK の dgesvd および zgesvd メソッドを使用する必要があります。

誰かが、f2py を使用して独自の python パッケージを作成できると指摘しました。問題は、lapack の dgesdd が​​ dbdsqr、dgelqf、およびいくつかの BLAS ルーチンなどの他のメソッドを呼び出すことです。

lapack ライブラリ全体を再コンパイルせずに dgesvd python モジュールを作成する適切な方法は何でしょうか?

どうもありがとうミーシャ

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

arrays - f2py: 返された配列の一部が変更されていないか空です

こんにちは、こちらで説明されているように、f2py を使用して、dgesvd.f ファイルをコンパイルし、それを llapack にリンクすることで、lapack ルーチン dgesvd をラップしています。

docstring によると、dgesvd モジュールには署名があります。

次に、次の ocde を使用してモジュールを呼び出します。

に格納されている正しい特異値が得られますout_sが、行列out_uout_vhはまだゼロで埋められているだけです。左/右の特異ベクトルを取得するには、何か別のことをする必要がありますか?

コードはエラーなしで実行されます。つまり、out_info0 です。

(jobu と jobvt の引数 'S' は、最初の min(m,n) 特異ベクトルのみを計算するようにルーチンに指示します。これを 'A' に変更しても、違いはありません)

どんなアイデアでも大歓迎です!ありがとうミーシャ

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

python - Python で FORTRAN (F2PY 経由で呼び出される) 出力をコピーする

f2pyを介してpythonでfortranコードを使用しています。Fortran の出力を、操作できる変数にリダイレクトしたいと思います。私が役に立ったこの質問があります。 Python での FORTRAN (F2PY 経由で呼び出される) 出力のリダイレクト

ただし、オプションで fortran コードを端末に書き込み、記録することもできます。これは可能ですか?

上記の質問とhttp://websrv.cs.umt.edu/isis/index.php/F2py_exampleからまとめた次のばかげたクラスがあり ます。

私のコードは現在、次のようになっています。

私の考えは、Fortran 出力の表示を許可するかどうかを確認するために使用できる、silent というフラグを用意することです。これは、作成時にcaptureTTYに渡されます。つまり、

これを実装する方法がよくわかりません。やるべきことは明らかです:

私の fortran メソッドは実行に時間がかかるため、私はこれが好きではありません。最後だけでなく、リアルタイムで更新されるのを確認できればうれしいです。

何か案は?コードは、Windows ではなく、Linux および Mac マシンで実行されます。私はウェブを見回しましたが、解決策が見つかりませんでした。あるとしたら、それは痛いほど明白になると確信しています!

乾杯、

G

明確化:

コメントから、上記が最も明確ではないことがわかります。私が現在持っているのは、fortran メソッドからの出力を記録する機能です。ただし、これにより、画面に印刷できなくなります。画面に印刷することはできますが、記録することはできません。両方を同時に実行するオプションが必要です。つまり、出力を記録し、リアルタイムで画面に出力します。

余談ですが、fortran コードは適切なアルゴリズムであり、私が興味を持っている実際の出力は各反復のパラメーターです。

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

python - make は .py ファイルを実行しません

を使用して Fortran コードから Python モジュールを作成しようとしていますf2py。プロジェクトの Makefile をセットアップしました。Windows 7 で MinGW と Python 3.2.2 を使用しています。

すべてが正常にコンパイルされ、実行されます。ただし、Makefile でターゲットを作成して実行すると、次のようになります。

コマンドが実行されないのはなぜmakeですか?どうすれば修正できますか?

編集:出力に示されているコマンドを実行しても機能しません:

ただし、以下は機能します。

EDIT 2:これは別の質問を提起します-それは何でenvあり、なぜmakeそれを追加するのですか?

EDIT 3: Florian のコメントに基づいて、f2py.py にシバン行が存在するために、envによって追加されたようです。makeシバンの前に追加を追加して、f2py.pyを編集しまし#た。私は今、次の問題を抱えています:

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

python - f2py 配列値関数

f2py の最近のバージョンは、配列値の fortran 関数のラップをサポートしていますか? 一部の古いドキュメントでは、これはサポートされていませんでした。今はどうですか?

たとえば、次の関数を func.f95 として保存してみましょう。

これをコンパイルしますf2py --fcompiler=gnu95 -c -m func func.f95

次に、次の python コードを test_func.py とします。

からの出力
python test_func.py