在Ubuntu 14.04上编译PyCaffe时无法找到Python.h

时间:2017-05-23 17:42:17

标签: python-3.x amazon-ec2 ubuntu-14.04 pycaffe

我试图在AWS EC2上使用Ubuntu 14.04 在<{3}}之后使用 Anaconda安装PyCaffe for Python 3.5.3。

我在Python 2.7的同一台机器上成功编译了它,但在编译版本3.5时,我收到以下错误:

player

我看到installation instructions并执行了:

time

我找到了this post,所以我执行了Python 3.5的等效命令:

ubuntu@ip-172-31-3-227:~/caffe$ make pycaffe
CXX/LD -o python/caffe/_caffe.so python/caffe/_caffe.cpp
python/caffe/_caffe.cpp:1:52: fatal error: Python.h: No such file or directory
 #include <Python.h>  // NOLINT(build/include_alpha)

所有安装都有效,但没有解决问题。

我还有很多关于类似问题的帖子,但不是这个确切的问题(所以如果你发现了什么,请在匆匆说我看起来不够好之前检查它是否真的是一样的情况)。

P.S。

我也看到this但我不明白要添加到路径的目录。

1 个答案:

答案 0 :(得分:1)

当您执行pip安装包时,当pip找到新版本时,它会在使用某个权限安装软件包时卸载当前版本(在您的情况下为dateutil),pip需要相同的权限才能卸载/升级它。

快速解决方法是更改​​此

`for req in $(cat requirements.txt); do pip3.5 install $req; done` to

for req in $(cat requirements.txt); do sudo pip3.5 install $req; done

您似乎没有权限以用户身份访问/usr/local/lib/python3.5/文件夹,系统需要进入/ usr / local的软件包,但只有您可以使用系统,我假设因为只有他们只限于你和pip想要访问假设没有限制,然后它得到权限被拒绝,所以你可能会考虑做

for req in $(cat requirements.txt); do  pip3.5 --user yourusername install $req; done

另一种方法是删除对该文件夹执行和写入的任何限制 通过做chmod -R 777 /usr/local/lib/python3.5/通常不推荐,但你需要pip才能读取,写入,执行该文件夹中的任何内容。