C++ に Python を埋め込むときの AttributeError (Ubuntu)

WBOY
リリース: 2024-02-10 14:09:04
転載
949 人が閲覧しました

在 C++ 中嵌入 python 时出现 AttributeError (Ubuntu)

質問内容

Python3.11.2にcプログラムを埋め込んでいます。埋め込み Python から Python スクリプトを呼び出すと (サードパーティ モジュールと標準ライブラリ モジュールをインポートする)、次のエラーが発生します:

リーリー

通常の (非埋め込み) Python からスクリプトを実行すると、すべてが正常に動作し、abc モジュールのファイル属性も見つけることができます。

次の構成を使用してソースから python3.11.2 をコンパイルしました。 --enable-optimizations --enable-shared --prefix="path/to/my/custom/build/folder/

奇妙なことに、スクリプトがインポートするすべてのサードパーティ モジュールには file 属性があり、正常に読み込まれます。

これの原因について何か洞察を持っている人はいますか?

私のオペレーティング システム: ubuntu 22.04.3

os などの他の標準ライブラリ モジュールをテストしました。組み込み Python から OS 内の関数を呼び出すと、正常に動作しますが、OS の file 属性が見つかりません。非埋め込み Python からこれを実行すると、file 属性が見つかります。

更新: 埋め込まれた Python に空のプレフィックスがあることを発見しました。このプレフィックスを変更するにはどうすればよいですか? pythonhomeを設定しても何も変わりません。


正解


モジュールの file 属性を手動で追加することで解決策を見つけました。 file プロパティがデフォルトで設定されない理由はまだわかりませんが、現在はこれでうまくいきます。

以上がC++ に Python を埋め込むときの AttributeError (Ubuntu)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!