問題タブ [cythonize]

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 に答える
232 参照

gcc - Anaconda cython ビルド モジュールが間違った GLIBCXX を探している

状況を説明しましょう。

システム g++ を使用して C++ ライブラリをコンパイルしました (Linux で)。次に、コンパイル済みライブラリの関数を呼び出す cython モジュールを構築しました。cython モジュールのビルドは、anaconada venv の下で行われました (ただし、venv 内に g++ はインストールされていません。したがって、cython はシステム gcc/g++ を使用していたに違いありません)。同じ anaconda venv の下で、cython モジュールをインポートすると、次のようなエラーが発生します。

システム g++ によってコンパイルされた c ライブラリ (libc_rd_halo.so) が anaconda g++ ライブラリを探しているようです。そして、anaconda venvにg ++がインストールされていません。


anaconda g++ を使用して c ライブラリを最初からコンパイルすることで問題を解決できます。cython モジュールを再度ビルドすると、モジュールをインポートできます。しかし、anaconda cython にシステム コンパイラを使用させ、モジュールのインポート時にシステム コンパイラ ライブラリを検索させたいと考えています。

私の質問は次のとおりです。

  1. anaconda cython がデフォルトでローカルの anaconda g++ を検索するのに、システム コンパイラは検索しないのはなぜですか? そうするメリットはありますか?

  2. anaconda cython でシステム コンパイラ ライブラリを探すにはどうすればよいですか?

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

python - Cython : .pyd ファイルをインポートするとエラーが返されます (init 関数がない?)

Cython を使用して Python コードを効率的にコンパイルし、高速化する方法を学んでいます。

これが私がこれまでに行ったことです:

  1. という Python ファイルを作成し、そのmath_code_python.py中に 4 つの単純な関数を入れました。
  2. そのファイルを として保存しましたmath_code_cython.pyx
  3. というセットアップファイルを作成しましたsetup.py
  4. を入力python C:\Users\loic\Documents\math_code\setup.py build_ext --inplaceしましたCommand Prompt
  5. math_code_cython.cp36-win_amd64.pyd名前を変更したというコンパイル済みファイルを取得しましたmath_code_pyd.pyd
  6. 最後に、その中test_math_code.pydだけimport math_code_pydで呼び出される Python ファイルを作成しました。このファイルを実行すると、次のメッセージが表示されました。

    /li>

私はいくつかの調査を行いましたが、これらの投稿のおかげで、次のものを提供する必要があることがわかりましたinit function

私の質問は次のとおりです。どうすればいいですか?次のようなものの最後に関数を配置する必要がありmath_code_python.pyますか?


Python の私のバージョン:

math_code_python.py

setup.py