web-dev-qa-db-ja.com

UbuntuシステムにPythonがありますが、gccはPython.hを見つけることができません

私は学校のコンピューターを使用しているため、何もインストールできません。

Pythonで実行できるCコードを作成しようとしています。私が見つけているすべての記事は、使用する必要があるようです

#include <Python.h>

私はこれを行いますが、コンパイルするとそのようなファイルやディレクトリはありません

コンピューターにはPythonがあります(少なくとも端末にはpythonコマンドがあり、必要なPythonコードを実行できます)。

ターミナルでlocate Python.hと入力しましたが、何も見つかりませんでした。

2つの質問があります。

  1. PythonでPython.hなしで呼び出すことができるCコードを記述できますか?

  2. 何かが足りないのに、コンピュータには実際にPython.hがありますか?

49
user979344

python-devを含むPython.hパッケージが必要です

48
Andrew Marsh

Ubuntuでは、_python-dev_というパッケージをインストールする必要があります。このパッケージはインストールされていないようで(_locate Python.h_は何も見つかりませんでした)、システム全体にインストールできないため、別のソリューションが必要です。

ホームディレクトリにPythonをインストールできます。これを行うために特別な権限は必要ありません。Webブラウザを使用してgccを実行することが許可されている場合、これは機能します。 。 この目的を達成するために

  1. ダウンロード ソースtarball

  2. で解凍

    _tar xjf Python-2.7.2.tar.bz2
    _
  3. ビルドしてインストール

    _cd Python-2.7.2
    ./configure --prefix=/home/username/python --enable-unicode=ucs4
    make
    make install
    _

これで、ホームディレクトリに完全なPythonインストールが完了しました。コンパイル時に_-I /home/username/python/include_をgccに渡して_Python.h_を認識させます。_-L /home/username/python/lib_を渡して_-lpython2.7_リンク時。

42
Sven Marnach

#include "python2.7/Python.h"の代わりに#include "python2.7/Python.h"を使用する必要があります。

30
Kuchhu

Ubuntu 15.10およびPython 3の場合、Python.hが管理者権限を持っている場合、次の方法で解決できます。

Sudo apt-get install python-dev
Sudo apt-get install python3-dev
Sudo apt-get install libpython3-dev
Sudo apt-get install libpython3.4-dev
Sudo apt-get install libpython3.5-dev
24
Martin Thoma

Ubuntuでは、ターミナルでSudo apt-get install python-dev -yと入力するだけで、python-devパッケージをインストールできます。

16
danielcooperxyz

現在、ヘッダーファイルは libpython2.7-dev によって提供されています。

packages.ubuntu.comの検索フォーム を使用して、どのパッケージが提供するかを調べることができますPython.h

6
unutbu

Python-devをインストールする必要があります。
Ubuntuの場合:
Sudo apt-get install python-dev # for python2.x installs Sudo apt-get install python3-dev # for python3.x installs
その他のディストリビューションについては、次を参照してください-
https://stackoverflow.com/a/21530768/6841045

5
vedipen

CentOS 7マシンでomniORBの非常に古いコピーを作成しようとしたときに、同じ問題に遭遇しました。 python開発ライブラリをインストールすることで問題を解決しました:

# yum install python-devel

これにより、Python.hが次の場所にインストールされました。

/usr/include/python2.7/Python.h

4
user3892260

私はubuntuforumsで答えを見つけました( buntuforums )、これをあなたのgcc '$(python-config --includes)'に追加するだけです

gcc $(python-config --includes) urfile.c

Python.hがデフォルトのインクルードフォルダー(/usr/include/)にないために発生します。

Python-devをインストールすると役立つ場合があります。

$ Sudo apt-get install python-dev 

しかし、開発パッケージはインクルードフォルダー自体(/usr/include/python2.7またはpython3)内の別のフォルダー内で作成されるため、ほとんどの問題は解決しません。

したがって、gcc-Iオプションを使用するか、これらのフォルダー内のすべての外部へのソフトリンクを作成することにより、ライブラリーフォルダーを指定する必要があります(前者のオプションをお勧めします)。

gcc:で-Iオプションを使用

$ gcc -o hello -I /usr/include/python2.7 helloworld.c

ソフトリンクの作成:

$ Sudo ln -sv /usr/include/python2.7/* /usr/include/
1
PunyCode

Synapticパッケージマネージャーに移動します。リロード->検索python-> pythonパッケージを選択->送信-> Install Works for me;)

正確に言うと、インストールする必要があるパッケージはpython-devです。

1
thathashd

つまり、python dev。

Linux OSを使用している場合は、以下のコマンドを個別に使用してこの問題を解決できます。

  • Ubuntu(Debian):

    Sudo apt-get install python-dev(Py2)またはSudo apt-get install python3-dev(Py3)

  • Rehat(CentOS):

    yum install python-devel

0
Little Roys