【问题标题】:Ubuntu Cython compilation error: command 'x86_64-linux-gnu-gcc' failed with exit status 1Ubuntu Cython 编译错误:命令“x86_64-linux-gnu-gcc”失败,退出状态为 1
【发布时间】:2021-12-24 10:52:29
【问题描述】:

我有一个 Cython/Python Dash/Flask 应用程序,我正在尝试在 Digitalocean 上编译和部署。

我设法部署了以前的版本就好了 - 但是在提取最新的编译之后现在失败了:

building 'event' extension
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/var/www/anagami/anagamienv/include -I/usr/include/python3.8 -c event.c -o build/temp.linux-x86_64-3.8/event.o
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

我正在使用 ubuntu 20 + python 3.8。相同的代码在 windows 上编译和运行非常好,并且用于在 ubuntu 上编译和运行 jsut 的稍早版本也是如此。

编译器在一个特定的扩展上卡住了很长时间(比如 15-20 分钟)并且总是给出那个错误。

到目前为止我已经尝试过 - 没有任何效果:

  • 删除所有 .pyd .c .so 文件并重新编译构建文件夹
  • 按照有类似问题的线程上的建议安装模块 libpcap-dev 和 libpq-dev
  • sudo apt-get install build-essential libssl-dev libffi-dev python-dev - 同上
  • 在 Windows 上编译并尝试在不重新编译的情况下在 linux 上运行相同的代码 - 程序没有开始给出错误,即它找不到编译失败的“事件”模块
  • nginx 和 wsgi 服务已禁用,我不会尝试覆盖任何正在使用的文件
  • 程序非常轻量,因此不太可能出现任何实际内存问题

我之前遇到过这个问题,当时只是删除 + 重新编译似乎可以解决问题 - 但现在我完全陷入困境 - 我已经尝试了任何我能想到的东西,但我没有解决这个问题.

更新:

我通过运行 python3 event.pyx 隔离了错误,它给出了以下信息:

cdef class master_event_table:
         ^
SyntaxError: invalid syntax

【问题讨论】:

  • 给出你跑过的所有步骤
  • 除了要点中的内容之外,我真的想不出我做过的任何其他事情。我还尝试在我的 setup.py 中添加 import setuptoops。在 Windows 上独立运行 py event.pyx 也会产生 cdef 语法错误,但是当我编译整个应用程序时它可以工作。关于我已完成的步骤,我还有什么特别可以提供的吗?
  • 还发现到另一个文件中,它在独立运行时遇到了一些 cdef str 的问题(这些在 Windows 上运行良好,之前在 ubuntu 上的同一个程序中运行)。我已经删除了它们,所以没有任何其他文件中的“语法错误”问题,只有事件中的 cdef 类,它仍然无法编译
  • 我在运行导入的模块独立 cp 时发现了另一个“语法”错误 - 这是行(也可以正常工作..):cpdef event_MOVE(input_settings):
  • python3 event.pyxnever 期望工作,因为您正在尝试将其作为 Python 文件读取。你想在文件上运行 Cython

标签: python ubuntu gcc cython digital-ocean


【解决方案1】:

问题归根结底是云提供商:digitalocean 的共享模型似乎存在一些内存问题,即使代码完全有效,也无法编译。

我最终切换到专用 CPU 计划,所有内容都编译并运行,无需修改。

【讨论】:

    猜你喜欢
    • 2016-01-08
    • 2017-05-20
    • 2016-04-18
    • 1970-01-01
    • 2016-08-27
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 2022-12-03
    相关资源
    最近更新 更多