Ubuntu Core 上的 Numpy 构建失败(使用 snapcraft)
Numpy build failure on Ubuntu Core (with snapcraft)
最后我在 Ubuntu 16.04 和 17.10 上安装了我的应用程序,但现在我尝试在 Ubuntu 核心(用我的树莓派)和我的 python 部分(这取决于在 numpy 上)在构建时遇到以下问题:
Running setup.py bdist_wheel for numpy ... error
Complete output from command /home/getty23/cavi/cavi-device-snap/parts/cavi-device-sdk/install/usr/bin/python2 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-9foo8C/numpy/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpewhEJRpip-wheel-:
Running from numpy source directory.
blas_opt_info:
blas_mkl_info:
libraries mkl,vml,guide not found in ['/home/getty23/cavi/cavi-device-snap/parts/cavi-device-sdk/install/usr/lib', '/usr/local/lib', '/usr/lib', '/usr/lib/arm-linux-gnueabihf']
NOT AVAILABLE
...
(更多日志here)
...
arm-linux-gnueabihf-gcc: numpy/core/src/multiarray/arrayobject.c
numpy/core/src/multiarray/arrayobject.c:1838:5: error: ‘array_methods’ undeclared here (not in a function)
array_methods, /* tp_methods */
^
numpy/core/src/multiarray/arrayobject.c:1840:5: error: ‘array_getsetlist’ undeclared here (not in a function)
array_getsetlist, /* tp_getset */
^
numpy/core/src/multiarray/arrayobject.c:1838:5: error: ‘array_methods’ undeclared here (not in a function)
array_methods, /* tp_methods */
^
numpy/core/src/multiarray/arrayobject.c:1840:5: error: ‘array_getsetlist’ undeclared here (not in a function)
array_getsetlist, /* tp_getset */
这是应用程序中使用 numpy 的部分:
parts:
cavi-device-sdk:
plugin: python
python-version: python2
source: ../cavi-device-sdk
stage-packages:
- liblapack-dev
- libatlas-base-dev
- gfortran
- libatlas-dev
- python-dev
- libc6
- python-numpy
我已经尝试包含不同的库 (libblas-dev liblapack-dev libatlas-base-dev gfortran libatlas-dev python-dev),并且我还移回了较旧的 numpy 版本 1.10.1。但没有任何帮助。
如果 numpy/snapcrafft 专家可以帮助我找出问题,那就太好了。
我找到了问题的答案。似乎我使用了错误的 numpy 版本。使用 numpy 1.11.0 和以下阶段包它正在工作:
- gcc
- gfortran
- python-dev
- libc6
- libblas3
- liblapack3
- libopenblas-dev
- liblapack-dev
- cython
除了安装 Miniconda,它会安装旧版本的 numpy,我还使用了以下步骤:
easy_install pip==1.5.6
pip install numpy==1.14.5
确保您有 setuptools
和 wheel
最新版本。 Sudo 和 chroot 也可能影响该过程。
我在 Ubuntu Core 上记录了我的个人经历:
最后我在 Ubuntu 16.04 和 17.10 上安装了我的应用程序,但现在我尝试在 Ubuntu 核心(用我的树莓派)和我的 python 部分(这取决于在 numpy 上)在构建时遇到以下问题:
Running setup.py bdist_wheel for numpy ... error
Complete output from command /home/getty23/cavi/cavi-device-snap/parts/cavi-device-sdk/install/usr/bin/python2 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-9foo8C/numpy/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpewhEJRpip-wheel-:
Running from numpy source directory.
blas_opt_info:
blas_mkl_info:
libraries mkl,vml,guide not found in ['/home/getty23/cavi/cavi-device-snap/parts/cavi-device-sdk/install/usr/lib', '/usr/local/lib', '/usr/lib', '/usr/lib/arm-linux-gnueabihf']
NOT AVAILABLE
... (更多日志here) ...
arm-linux-gnueabihf-gcc: numpy/core/src/multiarray/arrayobject.c
numpy/core/src/multiarray/arrayobject.c:1838:5: error: ‘array_methods’ undeclared here (not in a function)
array_methods, /* tp_methods */
^
numpy/core/src/multiarray/arrayobject.c:1840:5: error: ‘array_getsetlist’ undeclared here (not in a function)
array_getsetlist, /* tp_getset */
^
numpy/core/src/multiarray/arrayobject.c:1838:5: error: ‘array_methods’ undeclared here (not in a function)
array_methods, /* tp_methods */
^
numpy/core/src/multiarray/arrayobject.c:1840:5: error: ‘array_getsetlist’ undeclared here (not in a function)
array_getsetlist, /* tp_getset */
这是应用程序中使用 numpy 的部分:
parts:
cavi-device-sdk:
plugin: python
python-version: python2
source: ../cavi-device-sdk
stage-packages:
- liblapack-dev
- libatlas-base-dev
- gfortran
- libatlas-dev
- python-dev
- libc6
- python-numpy
我已经尝试包含不同的库 (libblas-dev liblapack-dev libatlas-base-dev gfortran libatlas-dev python-dev),并且我还移回了较旧的 numpy 版本 1.10.1。但没有任何帮助。 如果 numpy/snapcrafft 专家可以帮助我找出问题,那就太好了。
我找到了问题的答案。似乎我使用了错误的 numpy 版本。使用 numpy 1.11.0 和以下阶段包它正在工作:
- gcc
- gfortran
- python-dev
- libc6
- libblas3
- liblapack3
- libopenblas-dev
- liblapack-dev
- cython
除了安装 Miniconda,它会安装旧版本的 numpy,我还使用了以下步骤:
easy_install pip==1.5.6
pip install numpy==1.14.5
确保您有 setuptools
和 wheel
最新版本。 Sudo 和 chroot 也可能影响该过程。
我在 Ubuntu Core 上记录了我的个人经历: