J'ai Python sur mon système Ubuntu, mais gcc ne trouve pas Python.h
Je suis sur un ordinateur à l'école, je ne peux donc rien installer.
J'essaie de créer du code C qui peut être exécuté en Python. Il semble que tous les articles que je trouve exigent que vous utilisiez
#include <Python.h>
Je le fais, mais lorsque je compile, il se plaint que il n’existe aucun fichier ou répertoire de ce type.
L'ordinateur a Python (au moins, il a la commande python
dans le terminal), et nous pouvons exécuter n'importe quel Python que nous voulons).
J'ai tapé locate Python.h
dans le terminal, mais rien n’a été trouvé.
J'ai deux questions:
Puis-je écrire du code C que je peux appeler Python sans
Python.h
?Est-ce que je manque quelque chose, et l'ordinateur a en fait
Python.h
?
Vous avez besoin du python-dev
paquet contenant Python.h
Sous Ubuntu, vous devez installer un paquet nommé python-dev
. Comme ce paquet ne semble pas être installé (locate Python.h
n'a rien trouvé) et vous ne pouvez pas l'installer vous-même à l'échelle du système, nous avons besoin d'une solution différente.
Vous pouvez installer Python dans votre répertoire personnel. Aucune autorisation spéciale n'est nécessaire pour le faire. Si vous êtes autorisé à utiliser un navigateur Web et à exécuter un gcc, cela devrait fonctionner pour vous. . À cette fin
Télécharger l'archive source .
Décompressez avec
tar xjf Python-2.7.2.tar.bz2
Construire et installer avec
cd Python-2.7.2 ./configure --prefix=/home/username/python --enable-unicode=ucs4 make make install
Maintenant, vous avez une installation complète Python dans votre répertoire personnel. Passez -I /home/username/python/include
à gcc lors de la compilation pour le rendre conscient de Python.h
. Passer -L /home/username/python/lib
et -lpython2.7
lors de la liaison.
Vous devez utiliser # include "python2.7/Python.h" au lieu de # include "Python.h".
Pour Ubuntu 15.10 et Python 3, répondant à cette question car ils n’ont pas Python.h
mais avec des droits administratifs, les problèmes suivants pourraient le résoudre:
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
Sur Ubuntu, vous pouvez simplement taper Sudo apt-get install python-dev -y
in terminal pour installer le paquet python-dev.
Les fichiers d'en-tête sont maintenant fournis par libpython2.7-dev .
Vous pouvez utiliser le formulaire de recherche sur packages.ubuntu.com pour savoir quel paquet fournit Python.h
.
Vous devez installer python-dev.
Pour Ubuntu:Sudo apt-get install python-dev # for python2.x installs Sudo apt-get install python3-dev # for python3.x installs
Pour plus de distributions, référez-vous -
https://stackoverflow.com/a/21530768/6841045
J'ai rencontré le même problème en essayant de construire une très ancienne copie d'omniORB sur une machine CentOS 7. Résolu le problème en installant les bibliothèques de développement python:
# yum install python-devel
Cela a installé le Python.h dans:
/usr/include/python2.7/Python.h
J'ai trouvé la réponse dans ubuntuforums ( buntuforums ), vous pouvez simplement ajouter ceci à votre gcc '$ (python-config --includes)'
gcc $(python-config --includes) urfile.c
Cela se produit parce que Python.h
Ne se trouve pas dans le dossier d'inclusion par défaut (qui est /usr/include/
).
L'installation de Python-dev pourrait aider:
$ Sudo apt-get install python-dev
Mais le problème persiste principalement parce que les packages de développement sont créés dans un dossier séparé à l'intérieur du dossier d'inclusion proprement dit (/usr/include/python2.7
Ou python3
).
Vous devez donc soit spécifier le dossier de la bibliothèque en utilisant l'option -I
Dans gcc
, soit en créant des liens symboliques vers tout ce qui se trouve dans ces dossiers juste à l'extérieur (je préférerais l'ancienne option).
tilisation de l'option -I
Dans gcc
:
$ gcc -o hello -I /usr/include/python2.7 helloworld.c
Création de liens symboliques:
$ Sudo ln -sv /usr/include/python2.7/* /usr/include/
Allez au gestionnaire de paquets Synaptic. Recharger -> Rechercher python -> sélectionner le package python que vous voulez -> Soumettre -> Installer Works pour moi;)
Exactement, le paquet que vous devez installer est python-dev.
Cela signifie que vous n'êtes pas des bibliothèques d'installation pour python dev.
Si vous utilisez un système d'exploitation Linux, vous pouvez résoudre ce problème à l'aide de commandes séparées ci-dessous:
Ubuntu (Debian):
Sudo apt-get install python-dev
(Py2) ouSudo apt-get install python3-dev
(Py3)Rehat (CentOS):
yum install python-devel