如何为 python 3.4 安装正则表达式包而不会出错?

Бог*_*щук 5 python regex

我有一个小问题(或一个大问题?)。我想为 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 版本即可


Abd*_*ein 0

这是因为你的 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)

现在重试安装并享受吧!