cytoolz/dicttoolz.c:19:10: fatal error: Python.h: No such file or directory

5
    cytoolz/dicttoolz.c:19:10: fatal error: Python.h: No such file or directory
     19 | #include "Python.h"
        |          ^~~~~~~~~~
  compilation terminated.
  error: command 'gcc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for cytoolz

我正在使用这个:

   (venv) root@x-System-Product-Name:~# pypy3 --version
Python 3.6.9 (7.3.1+dfsg-4, Apr 22 2020, 05:15:29)
[PyPy 7.3.1 with GCC 9.3.0]

我在安装web3���遇到了问题,成功解决了lru-dict、bitarray和cytoolz包的问题。但这些是主要障碍...

我尝试了从互联网上找到的解决方案,但都没有奏效:

pip3 install wheel

sudo apt-get install python-dev 
sudo apt-get install python3-dev
sudo apt-get install libevent-dev
sudo apt-get install libblas-dev libatlas-base-dev

python -m venv --upgrade ./venv

sudo apt-get install python3-dev
sudo apt install libpython3.x-dev


dpkg --add-architecture i386
apt-get update
apt-get install libssl-dev:i386

sudo apt-get install openssl libssl-dev

pip3 install --upgrade pip

sudo apt-get install libpcap-dev libpq-dev

错误仍然存在,形式相同,使用完全相同的软件包。
我还尝试了手动下载文件来安装,但仍出现“无法构建wheel”的错误。
尝试安装GCC和其他一些随机想法,但都失败了。

这是完整的回溯吗?看起来有点短。似乎该文件正在寻找一个C库。我曾经遇到过mysqldb包的类似问题,安装程序正在寻找一个C库(.h)。其他人提供的解决方案都没有帮助,因为他们遇到了不同的错误消息。最终我做的是找到了C库的源代码,并手动将其粘贴到正确的目录中,并使用安装程序正在寻找的名称进行命名。这解决了我的问题。 - God-status
我已缩写完整的回溯信息,因为它非常长,这里是完整版本:https://pastebin.com/DQq0uqme - t_k
我明白了,那么试着手动创建文件并将其放在正确的目录中,我已经给你提供了代码链接。 - God-status
在一篇博客文章中找到了解决方案,更新了操作,感谢您的帮助和指引...尽管新的错误仍然表明该软件包需要进行某些工作。 - t_k
显示剩余2条评论
3个回答

2
在我的情况下,通过安装与我虚拟环境中的Python版本相对应的适当的python3-dev软件包来解决了这个问题。
sudo apt install python3.10-dev

我发现这比搞乱python.h文件更加简洁。

1
你需要的是适用于PyPy的Python.h版本和相关文件,而不是CPython的版本。通常可以在名为pypy3-dev的包中找到。

0

将OP的解决方案从问题迁移到答案:

这个教程有效: https://blog.ducthinh.net/gcc-no-such-file-python-h/

然而,安装仍需要进行一些工作 - 我遇到了关于cytoolz包的错误(因此我决定不标记为已解决)。

ImportError:/usr/local/lib/pypy3.6/dist-packages/cytoolz/itertoolz.pypy36-pp73-x86_64-linux-gnu.so:
未定义的符号:PyExc_SystemError


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接