我有一个小问题(或一个大问题?)。我想为 Python 3.4 安装正则表达式包。但是后来我使用 pip 或我们的安装方法出现错误:
Universe@universe-AOD270:~/Downloads/regex-2016.04.25$ python setup.py 安装 --user 运行安装 运行构建 运行 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"
Run Code Online (Sandbox Code Playgroud)
输出就像 -
python2.7/Python.h
python3.5/Python.h
Run Code Online (Sandbox Code Playgroud)
然后我使用下面的命令检查正在运行的 python 版本来安装该包
python3 -V
Run Code Online (Sandbox Code Playgroud)
输出 -
Python 3.6.7
Run Code Online (Sandbox Code Playgroud)
所以要安装 python3-dev 使用下面的命令
sudo apt-get install python3.6-dev
Run Code Online (Sandbox Code Playgroud)
只需将其替换为您的 python3 或 python2 版本即可
这是因为你的 python versoin 没有python-dev安装python3-dev包。
只需通过“pip”或“pip3”软件包安装程序安装它们即可享受它!
请注意,如果您发现上述软件包已安装并且您的问题仍然存在!,您必须通过以下方式在文件系统中查找“Python.h”文件:
sudo find / -name "Python.h"
Run Code Online (Sandbox Code Playgroud)
然后添加列出的路径,其中包含Python.h到您的C_INCLUDE_PATH环境变量中,例如:
export C_INCLUDE_PATH=/usr/include/python3.6m/
Run Code Online (Sandbox Code Playgroud)
现在重试安装并享受吧!