cytoolz/dicttoolz.c:19:10:致命错误:Python.h:没有这样的文件或目录

Posted

技术标签:

【中文标题】cytoolz/dicttoolz.c:19:10:致命错误:Python.h:没有这样的文件或目录【英文标题】:cytoolz/dicttoolz.c:19:10: fatal error: Python.h: No such file or directory 【发布时间】:2022-01-04 02:18:09 【问题描述】:
    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

ERROR 以相同的形式存在于完全相同的包中。

我也尝试从手动下载的文件安装,仍然是同样的“构建轮失败”错误。

试过安装GCC,其他一些随机的想法也试过了,都失败了。

...真是一场盛宴。

已解决:

本教程有效: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: undefined symbol: PyExc_SystemError

【问题讨论】:

这是完整的追溯吗?好像比较短。看起来该文件正在寻找一个 c 库。我在mysqldb 包中遇到了类似的问题,安装程序正在寻找一个 c 库 (.h)。其他人的解决方案没有帮助,因为他们有不同的错误消息。最终,我找到了 c 库的源代码,并将其手动粘贴到安装程序正在寻找的名称的正确目录中。这解决了我的问题。 看起来 google.com/… 可能就是您要找的东西。 我已经缩写了完整的回溯,因为它很长,这是完整的版本:pastebin.com/DQq0uqme 我明白了,可以尝试手动创建文件并将其放在正确的目录中,我还给了您代码的链接。 我已将 Python.h 文件粘贴到给我错误的手动下载的包中,并在它们上单独运行 pip install 并发生同样的事情,我应该将 Python.h 粘贴到其他地方,如根目录中venv文件夹?我也尝试使用 pypy3 pip 安装程序,它给出了同样的错误。 【参考方案1】:

您需要Python.h 的版本和相关文件用于 PyPy, 而不是来自 CPython 的版本。这通常在一个名为 pypy3-dev 之类的包中。

【讨论】:

以上是关于cytoolz/dicttoolz.c:19:10:致命错误:Python.h:没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章