Python:缺少Python.h文件 [英] Python: Python.h file missing

查看:646
本文介绍了Python:缺少Python.h文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Ubuntu 16.04.我正在尝试安装Murmurhash python库,但抛出错误:命令'x86_64-linux-gnu-gcc'失败,退出状态为1.我在Internet上查看时,据说该错误是由于缺少python头文件引起的.所以我做了

I am using Ubuntu 16.04. I am trying to install Murmurhash python library but it is throwing error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 . I looked on Internet and it is says that this error is due to missing python header files. So i did

sudo apt-get install python-dev  

但是错误仍然存​​在.是因为我安装了Anaconda还是什么原因而导致的错误?有人可以帮助我,如如何纠正此错误.错误如下:

but still the error is there. Is the error because i have Anaconda installed or what ? Can somebody help me as in how to rectify this error. Error is as follow :

running install
running build
running build_ext
building 'mmh3' extension
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c mmh3module.cpp -o build/temp.linux-x86_64-2.7/mmh3module.o
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
In file included from /usr/include/python2.7/Python.h:81:0,
             from mmh3module.cpp:3:
mmh3module.cpp: In function ‘int mmh3_traverse(PyObject*, visitproc, void*)’:
mmh3module.cpp:107:63: error: ‘PyModule_GetState’ was not declared in this scope
 #define GETSTATE(m) ((struct module_state*)PyModule_GetState(m))
                                                           ^
/usr/include/python2.7/objimpl.h:326:13: note: in definition of macro ‘Py_VISIT’
     if (op) {                                                       \
         ^
mmh3module.cpp:134:14: note: in expansion of macro ‘GETSTATE’
 Py_VISIT(GETSTATE(m)->error);
          ^
In file included from /usr/include/python2.7/Python.h:80:0,
             from mmh3module.cpp:3:
mmh3module.cpp: In function ‘int mmh3_clear(PyObject*)’:
mmh3module.cpp:107:63: error: ‘PyModule_GetState’ was not declared in this scope
#define GETSTATE(m) ((struct module_state*)PyModule_GetState(m))
                                                           ^
/usr/include/python2.7/object.h:816:13: note: in definition of macro ‘Py_CLEAR’
if (op) {                               \
         ^

mmh3module.cpp:139:14: note: in expansion of macro ‘GETSTATE’
 Py_CLEAR(GETSTATE(m)->error);
          ^
mmh3module.cpp: At global scope:
mmh3module.cpp:143:27: error: variable ‘PyModuleDef mmh3module’ has initializer but incomplete type
 static struct PyModuleDef mmh3module = {
                       ^
 mmh3module.cpp:144:5: error: ‘PyModuleDef_HEAD_INIT’ was not declared in this scope
 PyModuleDef_HEAD_INIT,
 ^
 mmh3module.cpp: In function ‘void PyInit_mmh3()’:
mmh3module.cpp:157:51: error: ‘PyModule_Create’ was not declared in this scope
 PyObject *module = PyModule_Create(&mmh3module);
                                               ^
In file included from /usr/include/wchar.h:51:0,
             from /usr/include/python2.7/unicodeobject.h:120,
             from /usr/include/python2.7/Python.h:85,
             from mmh3module.cpp:3:
mmh3module.cpp:160:16: error: return-statement with a value, in function returning 'void' [-fpermissive]
     return NULL;
            ^
mmh3module.cpp:107:63: error: ‘PyModule_GetState’ was not declared in this scope
#define GETSTATE(m) ((struct module_state*)PyModule_GetState(m))
                                                           ^
mmh3module.cpp:164:31: note: in expansion of macro ‘GETSTATE’
 struct module_state *st = GETSTATE(module);
                           ^
mmh3module.cpp:166:60: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]
 st->error = PyErr_NewException("mmh3.Error", NULL, NULL);
                                                        ^
In file included from /usr/include/wchar.h:51:0,
             from /usr/include/python2.7/unicodeobject.h:120,
             from /usr/include/python2.7/Python.h:85,
             from mmh3module.cpp:3:
mmh3module.cpp:169:16: error: return-statement with a value, in function returning 'void' [-fpermissive]
     return NULL;
            ^
mmh3module.cpp:172:12: error: return-statement with a value, in function returning 'void' [-fpermissive]
 return module;
        ^
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

推荐答案

我刚刚尝试了ubuntu 16.04

apt-get update
apt-get install -y python-pip
pip install mmh3

那似乎行得通.在您的机器上,您可以尝试.

That seems to be working. In your machine, you can just try.

sudo apt-get install -y python-pip
sudo pip install mmh3

通过此操作,您可以确定gcc的anaconda问题.

With this you will be sure whether it is or not an anaconda problem with gcc.

我还用命令pip install mmh3用ubuntu 14.04检查了anaconda.它似乎也可以正常工作.

I also checked anaconda with ubuntu 14.04 with the command pip install mmh3. It appears to be working too.

这篇关于Python:缺少Python.h文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆