pybind11を使用してvirtualenvからPythonインタープリターを実行する方法は?

abyesilyurt

私はと呼ばれるPython環境からPythonインタプリタ、実行しようとしていますenv_tensorflowを使用して、pybind11のライブラリを。

cppファイルをインクルードしてその環境からインクルードされているpybind11ライブラリ(env_tensorflow)にリンクしますが、インタープリターはそのバイナリパスを次のように出力します。

/ usr / bin / python3

ただし、出力は次のようになると思います。

/ home / user / miniconda3 / envs / env_tensorflow / bin / python3

私は何が間違っているのですか?特定の環境からPythonインタープリターを実行するにはどうすればよいですか?

main.cpp

#include "/home/user/miniconda3/envs/env_tensorflow/include/python3.6m/Python.h"
#include "/home/user/miniconda3/envs/env_tensorflow/include/python3.6m/pybind11/pybind11.h"
#include "/home/user/miniconda3/envs/env_tensorflow/include/python3.6m/pybind11/embed.h"

namespace py = pybind11;
int main() {
    py::scoped_interpreter guard{};
    py::module sys = py::module::import("sys");
    py::print(sys.attr("executable"));
    //prints: /usr/bin/python3
    //expected print: /home/user/miniconda3/envs/env_tensorflow/bin/python3
    return 0;
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.12)
project(my_proj)
set(CMAKE_CXX_STANDARD 11)

add_library(my_python3.6m SHARED IMPORTED)
set_target_properties(my_python3.6m PROPERTIES
        IMPORTED_LOCATION "/home/user/miniconda3/envs/env_tensorflow/lib/libpython3.6m.so"
        INTERFACE_INCLUDE_DIRECTORIES "/home/user/miniconda3/envs/env_tensorflow/include/python3.6m/"
        )

add_executable(my_proj main.cpp)
target_link_libraries(my_proj my_python3.6m)
ジョン・ズウィンク

Conda環境をアクティブ化する必要があります。

source activate env_tensorflow

これを実行すると、cmake、make、およびアプリケーションを正しいPythonインタープリターで実行できるようになります。CMakeでIMPORTEDターゲットはおそらく必要ありませんpython3.6m。ビルドプロセス中に環境がアクティブである限り、通常どおりリンクすることができます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Pythonインタープリター(pybind11)が埋め込まれたCPPファイルをビルドして実行する方法

分類Dev

pybind11を使用してPythonからC ++へのポインターを渡す

分類Dev

pybind11を使用して、既存の埋め込みPythonインタープリターでC ++機能を公開する

分類Dev

Pybind11:Pythonインタープリターで* .pydをインポートしようとすると、「ImportError:DLLが見つかりません」

分類Dev

Python、C ++、およびpybind11を使用して生のPODポインター(配列)を返し、渡す

分類Dev

pybind11を使用してtypedefタイプをバインドするための適切な構文は何ですか?

分類Dev

PythondictをPybind11のC ++カウンター部分に変換する方法は?

分類Dev

Virtualenvのインタプリタ起動時にPythonコードを実行する方法は?

分類Dev

pybind11またはPythonCAPIを使用してASTをコンパイルして実行します

分類Dev

pybind11を使用したマルチスレッドC ++プログラムへのPythonインタープリターの埋め込み

分類Dev

Pybind11:タプルのリストをPythonからC ++に渡す

分類Dev

CherryPyでAjaxを使用してPythonスクリプトを実行し、WebインターフェイスからRaspberry PiZeroにSSHで接続する方法

分類Dev

pybind11:setuptoolsを使用してリンクする

分類Dev

virtualenvインタープリターを変更する方法は?

分類Dev

pybind11、cmake:ファイルをインストールする方法は?

分類Dev

パイソンからOpenCVの画像を取得し、pybind11にC ++でそれを使用する方法?

分類Dev

pybind11バインディングを生成するためのテンプレートメタ関数

分類Dev

PyBind11:ダブルポインターを使用する関数のバインド

分類Dev

VisualStudioコードを使用してPythonインタープリターに複数のvirtualenvを追加する

分類Dev

リフレクトタイプを使用してタイプアサーションを実行する方法

分類Dev

Disco Dingo PyCharm 'インタープリター/ usr / bin / python2でvirtualenvを実行している間、他のすべてはPython3を実行している

分類Dev

テストケースを実行するpybind11

分類Dev

実行中のスクリプト内から、どのPythonインタープリターがスクリプトを実行しているかを知る方法は?

分類Dev

すべてのユーザーからターミナルでコマンドを使用してアプリケーションを実行する方法

分類Dev

pybind11を使用してC ++からPython関数を呼び出す

分類Dev

pybind11を使用してC ++からPython関数を呼び出す

分類Dev

コマンドラインからgimpfuを使用してPythonスクリプトを実行する方法は?

分類Dev

コマンド ライン パラメータを使用して C# から Python 2.7 スクリプトを実行する

分類Dev

pybind11を使用してyaml-cppiteratorをラップする

Related 関連記事

  1. 1

    Pythonインタープリター(pybind11)が埋め込まれたCPPファイルをビルドして実行する方法

  2. 2

    pybind11を使用してPythonからC ++へのポインターを渡す

  3. 3

    pybind11を使用して、既存の埋め込みPythonインタープリターでC ++機能を公開する

  4. 4

    Pybind11:Pythonインタープリターで* .pydをインポートしようとすると、「ImportError:DLLが見つかりません」

  5. 5

    Python、C ++、およびpybind11を使用して生のPODポインター(配列)を返し、渡す

  6. 6

    pybind11を使用してtypedefタイプをバインドするための適切な構文は何ですか?

  7. 7

    PythondictをPybind11のC ++カウンター部分に変換する方法は?

  8. 8

    Virtualenvのインタプリタ起動時にPythonコードを実行する方法は?

  9. 9

    pybind11またはPythonCAPIを使用してASTをコンパイルして実行します

  10. 10

    pybind11を使用したマルチスレッドC ++プログラムへのPythonインタープリターの埋め込み

  11. 11

    Pybind11:タプルのリストをPythonからC ++に渡す

  12. 12

    CherryPyでAjaxを使用してPythonスクリプトを実行し、WebインターフェイスからRaspberry PiZeroにSSHで接続する方法

  13. 13

    pybind11:setuptoolsを使用してリンクする

  14. 14

    virtualenvインタープリターを変更する方法は?

  15. 15

    pybind11、cmake:ファイルをインストールする方法は?

  16. 16

    パイソンからOpenCVの画像を取得し、pybind11にC ++でそれを使用する方法?

  17. 17

    pybind11バインディングを生成するためのテンプレートメタ関数

  18. 18

    PyBind11:ダブルポインターを使用する関数のバインド

  19. 19

    VisualStudioコードを使用してPythonインタープリターに複数のvirtualenvを追加する

  20. 20

    リフレクトタイプを使用してタイプアサーションを実行する方法

  21. 21

    Disco Dingo PyCharm 'インタープリター/ usr / bin / python2でvirtualenvを実行している間、他のすべてはPython3を実行している

  22. 22

    テストケースを実行するpybind11

  23. 23

    実行中のスクリプト内から、どのPythonインタープリターがスクリプトを実行しているかを知る方法は?

  24. 24

    すべてのユーザーからターミナルでコマンドを使用してアプリケーションを実行する方法

  25. 25

    pybind11を使用してC ++からPython関数を呼び出す

  26. 26

    pybind11を使用してC ++からPython関数を呼び出す

  27. 27

    コマンドラインからgimpfuを使用してPythonスクリプトを実行する方法は?

  28. 28

    コマンド ライン パラメータを使用して C# から Python 2.7 スクリプトを実行する

  29. 29

    pybind11を使用してyaml-cppiteratorをラップする

ホットタグ

アーカイブ