我遇到了一个小问题(或者说一个大问题?)。我想安装适用于 Python 3.4 的 regex 包。但是当我使用 pip 或我们的安装方法时,出现了错误:
universe@universe-AOD270:~/Downloads/regex-2016.04.25$ python setup.py 安装--用户 正在安装 正在运行构建 运行build_py 创建构建 创建 build/lib.linux-x86_64-2.7 复制 Python2/regex.py -> build/lib.linux-x86_64-2.7 复制 Python2/_regex_core.py -> build/lib.linux-x86_64-2.7 复制 Python2/test_regex.py -> build/lib.linux-x86_64-2.7 运行 build_ext 构建“_regex”扩展 创建 build/temp.linux-x86_64-2.7 创建 build/temp.linux-x86_64-2.7/Python2 x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c Python2/_regex.c -o build/temp.linux-x86_64-2.7/Python2/_regex.o ****Python2/_regex.c:46:20:致命错误:Python.h:没有这样的文件或目录 编译终止。**** 错误:命令‘x86_64-linux-gnu-gcc’失败,退出状态为 1
我认为出现此问题的原因是安装程序尝试将此包安装到 Python2.7 目录中,但我不确定。我尝试 pip 安装,从 Python 解释器启动,通过终端运行,但没有成功。请帮我解决这个问题。提前致谢。
答案1
我也遇到过这个错误,然后我发现缺少 python3-dev,但当我运行命令时它已经安装了。然后我使用以下命令检查它安装了哪个 python 版本 -
sudo find / -name "Python.h"
输出如下 -
python2.7/Python.h
python3.5/Python.h
然后我使用以下命令检查正在运行的 Python 版本以安装该包
python3 -V
输出 -
Python 3.6.7
因此要安装 python3-dev,请使用以下命令
sudo apt-get install python3.6-dev
只需将其替换为你的 python3 或 python2 版本
答案2
这是因为您的 Python 版本没有相应的python-dev
软件包。python3-dev
只需通过“pip”或“pip3”包安装程序安装它们并享受它!
请注意,如果您发现提到的软件包已安装但问题仍然存在!您必须通过以下方式在文件系统中查找“Python.h”文件:
sudo find / -name "Python.h"
然后将包含以下内容的列出的路径添加Python.h
到您的环境变量中:C_INCLUDE_PATH
export C_INCLUDE_PATH=/usr/include/python3.6m/
现在重新尝试安装并享受吧!