2017-02-11 4 views
0

C/C++アプリケーションにPythonインタプリタを埋め込む方法を説明したPython documentation chapterを読んだことがあります。また、私はPythonモジュールをシステム全体にインストールすることも、特定のユーザーにローカルにインストールすることもできます。C/C++アプリケーション内に完全に埋め込まれたSymPy + Matplotlib +その他

私のC/C++アプリケーションでは、SymPy、Matplotlib、その他の関連モジュールなどのPythonモジュールを使用するとしましょう。そして、私のアプリケーションのエンドユーザが、自分のマシンにPythonインストールを一切持たないとしましょう。

これは、私のアプリケーションがデータディレクトリの中に "擬似的にインストールされた"モジュールを同梱しなければならないことを意味します(アプリケーションにアイコンや他のリソース用のフォルダがあるように、Pythonモジュールのディレクトリが必要です)。

もう1つの要件は、アプリケーションのインストールの絶対パスが固定されていないことです。ユーザーはアプリケーションバンドルを別のディレクトリに「ドラッグ」してそこでうまく動作します(これはすでにこの方法で動作しますが、 Pythonを埋め込んだ後もこの方法が続いていることを願っています)。

「私はPythonをインストールせずに、どのようにPythonを使うことができますか?システム全体でもユーザ全体でもありませんか?

答えて

0

これを行う方法はさまざまですが、いずれも一般的な解決策ではありません。 〜から(docs):

5.5。 PythonをC++に埋め込む

PythonをC++プログラムに埋め込むこともできます。これがどのように行われるかは、使用されるC++システムの詳細に依存します。一般的に、C++でメインプログラムを作成し、C++コンパイラを使用してプログラムをコンパイルしてリンクする必要があります。 C++を使ってPython自体を再コンパイルする必要はありません。

これは、文書内の最も短い部分であり、ほぼ同等である:「reader`ための課題として残さ。私はあなたがまっすぐな解決策を見つけるとは思わない。作品を収集する

使用pyInstallerの:

これは私のアプリケーションはそのデータディレクトリ内で、「擬似インストール」モジュールを出荷する必要があることを意味します(アプリケーションがアイコンのフォルダを持っているだけのようおよび他のリソースでは、Pythonモジュール用のディレクトリが必要です)。

この問題に取り組む必要がある場合は、pyinstallerをベースに使用します。 (開示:私は時々寄稿者です)。 pyinstallerの主な機能の1つは、Pythonプログラムに必要なすべてのリソースを集めることです。 onedirモードでは、プログラムを実行させるために必要なすべてのものが1つのディレクトリに集められます。

このツールを作成システムに組み込み、必要なすべての部分をビルドツリーのpythonデータディレクトリに置くことができます。

関連する問題