質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2727閲覧

c言語へのPythonの埋め込み

rorikonsaba

総合スコア7

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2016/12/16 01:26

Raspberry Piでキャラクタディスプレイと赤外線銃を用いてサバゲのようなものを行おうと考えているのですが、C言語上でのPythonの埋め込みがうまくいかないです。。。
何かいい案があったら教えてもらえないでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Pythonについて調べるときは、最初にPythonの公式ドキュメントを読むといいです。Pythonについて大抵のことは、ここに書いてあります。最初はいくらかとっつきにくいかもしれませんが、間違ったことはまず書いてありません。

今回であれば、次のような文書はひととおり読むといいと思います。


ご質問の件については、「拡張と埋め込みFAQ」に答えが書いてあるようです。

Python の多くのパッケージバージョンには、Python 拡張をコンパイルするのに必要な様々なファイルを含む /usr/lib/python2.x/config/ ディレクトリが含まれていません。

Red Hat では、Python RPM をインストールして必要なファイルを得てください。

Debian では、 apt-get install python-dev を実行してください。

(追記)

インストールができているかどうか確かめるには、python-config --ldflagsなどを実行して、次のことを確認するといいでしょう。

  • エラーが表示されずに、何か出力されること。
  • 表示されるディレクトリ (例: /usr/lib/python2.7/) の名前に含まれるバージョン (例の場合は2.7) が、お使いのPythonのメジャーバージョン・マイナバージョンと一致すること。

ソースをgccなどでコンパイルするときは、コマンドラインオプションに次のものを追加します。

  • python-config --cflagsで出力された内容。
  • python-config --ldflagsで出力された内容。

これでなにかうまくいかなければ、実行したコマンドと画面に出力されたものを、ご質問に追記して下さい。

投稿2016/12/16 03:05

編集2016/12/16 05:01
ikedas

総合スコア4317

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rorikonsaba

2016/12/16 03:29

/usr/lib/python2.x/config/を探しましたが、見つかりませんでした。 RasPiなので apt-get install python-dev を実行しましたが、見つからなかったです。
ikedas

2016/12/16 03:31

ディレクトリ名が古いバージョンのものになっていますね。 以下を実行してみてください。エラーにならずになにか表示されますか。 python-config --ldflags
rorikonsaba

2016/12/16 03:46

ーL/usr/lib/python2.7/config-arm-linux-gnuebihf -L/ーL/usr/lib/python2.7/config-arm-linux-gnuebihf -L/ーL/usr/lib/python2.7/config-arm-linux-gnuebihf -L/ -Wl, -01 -Wl -Bsymbolic-functions このように表示されました。
ikedas

2016/12/16 05:02

それで問題ないです (お使いの環境では、問題のディレクトリが/usr/lib/python2.7/config-arm-linux-gnuebihfという名前になっています)。回答に続きを書きました。
rorikonsaba

2016/12/19 04:43

ご指摘の通り、コンパイル時のオプションを見直したら実行ファイルが無事コンパイルできました。ありがとうございます。下記のコマンドでコンパイルできました。 gcc call.cpp -o call -I/usr/include/arm-linux-gnueabihf/python2.7 -I/usr/include/python2.7 -ipython2.7 また、その後Pythonファイルを引数として実行した際にImportError:No Module namedを吐きましたが、下記のコマンドでPythonのパスを追加したことで実行ファイルまで動作確認できました。 export PYTHONPATH=/path/to/dir:$PYTHONPATH ご丁寧な対応ありがとうございました。(後半は個人の解決策として書かせていただきました。)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問