Numpy ошибка импорта "неопределенный символ: PyFPE_jbuf" на RPi - PullRequest
1 голос
/ 31 января 2020

Context

Я пытаюсь установить TensorFlow на мой Raspberry Pi, но numpy не может работать.

Моя установка RPi бесплатна sh от microSD. Я использую Raspbian Buster и до этого на этой системе ничего не делал, кроме sudo apt update && sudo apt upgrade, устанавливаю python3 .5 и пытаюсь установить файл колеса TensorFlow (самый последний), используя python -m pip install <tensorflow>.whl.

Я использую чистые virtualenv и pip для установки пакетов python (оба pip install ... и python -m pip install ... в env). Установки не имеют ошибок или предупреждений; все выглядит нормально, пока я не попытаюсь использовать / импортировать numpy.

Ошибка, упомянутая в названии, следующая:

Python 3.5.4 (default, Sep  5 2017, 18:32:10) 
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/pi/tensorflow/lib/python3.5/site-packages/numpy/__init__.py", line 152, in <module>
    from . import random
  File "/home/pi/tensorflow/lib/python3.5/site-packages/numpy/random/__init__.py", line 181, in <module>
    from . import _pickle
  File "/home/pi/tensorflow/lib/python3.5/site-packages/numpy/random/_pickle.py", line 1, in <module>
    from .mtrand import RandomState
ImportError: /home/pi/tensorflow/lib/python3.5/site-packages/numpy/random/mtrand.cpython-35m-arm-linux-gnueabihf.so: undefined symbol: PyFPE_jbuf

Воспроизвести

Я могу последовательно Воспроизведите это, запустив чистый virtualenv, используя python3 .5, pip install numpy или python -m pip ..., затем попытайтесь импортировать numpy, как описано выше.

Попытки

Большинство других вопросов Я видел, что это связано с путями установки Cython или наличием другого numpy на компьютере, так что я сделал это до сих пор:

  1. Удаление по умолчанию numpy установка на пи

  2. Установлен Cython, переустановлен numpy

  3. Установка numpy с pip install --no-cache-dir numpy

Примечание

numpy установка работает на python3 .7 virtualenv

Обновление

Я последовал комментарию phd и попытался собрать из источника ( git clone ..., cd numpy, python setup.py все в virtualenv на python3 .5). Это привело к тому же отсутствующему символу, хотя и в другом месте. Он выглядит как связанный с Cython?

Running from numpy source directory.
Cythonizing sources
Processing numpy/random/bounded_integers.pxd.in
Processing numpy/random/bounded_integers.pyx.in
Traceback (most recent call last):
  File "/usr/lib/python3.5/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.5/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/pi/tensorflow/lib/python3.5/site-packages/cython.py", line 17, in <module>
    main(command_line = 1)
  File "/home/pi/tensorflow/lib/python3.5/site-packages/Cython/Compiler/Main.py", line 858, in main
    result = compile(sources, options)
  File "/home/pi/tensorflow/lib/python3.5/site-packages/Cython/Compiler/Main.py", line 780, in compile
    return compile_multiple(source, options)
  File "/home/pi/tensorflow/lib/python3.5/site-packages/Cython/Compiler/Main.py", line 750, in compile_multiple
    context = options.create_context()
  File "/home/pi/tensorflow/lib/python3.5/site-packages/Cython/Compiler/Main.py", line 597, in create_context
    self.cplus, self.language_level, options=self)
  File "/home/pi/tensorflow/lib/python3.5/site-packages/Cython/Compiler/Main.py", line 80, in __init__
    from . import Builtin, CythonScope
  File "/home/pi/tensorflow/lib/python3.5/site-packages/Cython/Compiler/CythonScope.py", line 5, in <module>
    from .UtilityCode import CythonUtilityCode
  File "/home/pi/tensorflow/lib/python3.5/site-packages/Cython/Compiler/UtilityCode.py", line 3, in <module>
    from .TreeFragment import parse_from_strings, StringParseContext
  File "/home/pi/tensorflow/lib/python3.5/site-packages/Cython/Compiler/TreeFragment.py", line 17, in <module>
    from .Visitor import VisitorTransform
  File "Cython/Compiler/Visitor.py", line 17, in init Cython.Compiler.Visitor
  File "/home/pi/tensorflow/lib/python3.5/site-packages/Cython/Compiler/ExprNodes.py", line 4724, in <module>
    class SliceIndexNode(ExprNode):
  File "/home/pi/tensorflow/lib/python3.5/site-packages/Cython/Compiler/ExprNodes.py", line 4922, in SliceIndexNode
    "SliceObject", "ObjectHandling.c", context={'access': 'Get'})
  File "/home/pi/tensorflow/lib/python3.5/site-packages/Cython/Compiler/Code.py", line 404, in load
    return cls(**kwargs)
  File "/home/pi/tensorflow/lib/python3.5/site-packages/Cython/Compiler/Code.py", line 648, in __init__
    proto = sub_tempita(proto, context, file, name)
  File "/home/pi/tensorflow/lib/python3.5/site-packages/Cython/Compiler/Code.py", line 640, in sub_tempita
    from ..Tempita import sub
  File "/home/pi/tensorflow/lib/python3.5/site-packages/Cython/Tempita/__init__.py", line 4, in <module>
    from ._tempita import *
ImportError: /home/pi/tensorflow/lib/python3.5/site-packages/Cython/Tempita/_tempita.cpython-35m-arm-linux-gnueabihf.so: undefined symbol: PyFPE_jbuf

После этого он просто говорит мне, что запуск cythonize завершился неудачей в setup.py.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...