問題タブ [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.
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 です。
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 のパッケージングの経験がある人は、これについて私を助けてくれますか?
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 からの完全な出力は次のとおりです。
fortran - f2py と WRITE ステートメント
あまり複雑に思えないので、この答えを探してみましたが、成功しませんでした。古いFORTRANコードを使用して、Pythonに取り込んで使用できるようにしようとしています。その過程で、ファイル I/O に関するいくつかの問題に遭遇しました。これが f2py によってどのように処理されるかを理解しようとしています。gfortranを使用してUbuntu 11.10に取り組んでいます。たとえば、次のサブルーチンを使用しようとしていました。
次に、gfortran と f2py を使用してコンパイルします。
inout.so 共有ライブラリを作成します。次に、Python で簡単なテストを試します。
次に、Python を終了し、新しく作成された「テスト」ファイルを開きます。ファイルは空です。画面に問題なく印刷できますが、ファイルに印刷できないようです。任意のガイダンスをいただければ幸いです。f2py のドキュメントでは、WRITE ステートメントについて言及していません。
python - f2py: 異なるファイルに分散されたサブルーチンを使用する fortran モジュールをラップしますか?
前述の理由により、numpy でラップされたものではなく、Python で LAPACK の dgesvd および zgesvd メソッドを使用する必要があります。
誰かが、f2py を使用して独自の python パッケージを作成できると指摘しました。問題は、lapack の dgesdd が dbdsqr、dgelqf、およびいくつかの BLAS ルーチンなどの他のメソッドを呼び出すことです。
lapack ライブラリ全体を再コンパイルせずに dgesvd python モジュールを作成する適切な方法は何でしょうか?
どうもありがとうミーシャ
arrays - f2py: 返された配列の一部が変更されていないか空です
こんにちは、こちらで説明されているように、f2py を使用して、dgesvd.f ファイルをコンパイルし、それを llapack にリンクすることで、lapack ルーチン dgesvd をラップしています。
docstring によると、dgesvd モジュールには署名があります。
次に、次の ocde を使用してモジュールを呼び出します。
に格納されている正しい特異値が得られますout_s
が、行列out_u
とout_vh
はまだゼロで埋められているだけです。左/右の特異ベクトルを取得するには、何か別のことをする必要がありますか?
コードはエラーなしで実行されます。つまり、out_info
0 です。
(jobu と jobvt の引数 'S' は、最初の min(m,n) 特異ベクトルのみを計算するようにルーチンに指示します。これを 'A' に変更しても、違いはありません)
どんなアイデアでも大歓迎です!ありがとうミーシャ
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 コードは適切なアルゴリズムであり、私が興味を持っている実際の出力は各反復のパラメーターです。
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を編集しまし#
た。私は今、次の問題を抱えています:
python - f2py 配列値関数
f2py の最近のバージョンは、配列値の fortran 関数のラップをサポートしていますか? 一部の古いドキュメントでは、これはサポートされていませんでした。今はどうですか?
たとえば、次の関数を func.f95 として保存してみましょう。
これをコンパイルしますf2py --fcompiler=gnu95 -c -m func func.f95
次に、次の python コードを test_func.py とします。
からの出力
python test_func.py
は