尽管安装了python-dev,Python pip似乎无法找到Python.h

时间:2014-10-25 05:08:50

标签: python-2.7 pip

我目前正在尝试安装getch,一个简单的python包,并遇到了相当大的困难。我最近以一种混乱的方式安装了pypy(我想在pypy工作时遇到麻烦,这是一个相当大的痛苦)所以这可能与我遇到的问题有关。

好的,我试着跑

sudo pip install getch

我收到了错误......

error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

并且作为奖励,字符编码错误。

这是人们在没有安装python-dev时得到的错误。但是,我这样做。我尝试通过下载软件包并手动安装来解决此问题。

sudo python setup.py install

还给了我上面的gcc错误。我安装了gcc,x86_64-linux-gnu-gcc在终端正常工作。我在c中创建了一个简单的hello world程序,它只包含Python.h。这也很好。删除 - 从我的系统中删除pypy,python和python-dev后,我重新安装了python和python-dev,我仍然有同样的愚蠢问题。

有人有任何想法吗?

这是我得到的确切错误的pastebin。 pastebin.com/mjRdADZx

1 个答案:

答案 0 :(得分:0)

您需要手动下载Python 2版本并进行安装。 pip下载的版本适用于Python 3。

线索是这一行:

Downloading/unpacking getch
  Downloading getch-1.0.tar.gz  # This is the Python 3 package
  Running setup.py egg_info for package getch

Installing collected packages: getch
  Running setup.py install for getch
    building 'getch' extension
    gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/local/include -I/usr/include -I/usr/include/python2.7 -c getchmodule.c -o build/temp.linux-i686-2.7/getchmodule.o
    getchmodule.c: In function ‘getch_getche’:
    getchmodule.c:36:6: warning: unused variable ‘ok’ [-Wunused-variable]
    getchmodule.c: In function ‘getch_getch’:
    getchmodule.c:43:6: warning: unused variable ‘ok’ [-Wunused-variable]
    getchmodule.c: At top level:
    getchmodule.c:54:15: error: variable ‘getchmodule’ has initializer but incomplete type
    getchmodule.c:55:4: error: ‘PyModuleDef_HEAD_INIT’ undeclared here (not in a function)

Python 2版本也是1.0,但文件名是getch-1.0-python2.tar.gz。您可以下载directly from the index

下载后,从解压缩的目录中提取存档,然后提取python setup.py install