我试图运行一个完整的make
在Buildroot。我添加了一些Python包作为hdbscan。不幸的是,似乎Buildroot需要Cython来构建hbdscan并且找不到它,即使它似乎已经安装…
下面是我运行make
后得到的错误:
<path to buildroot>/output/build/python-hdbscan-0.8.27/setup.py:8: UserWarning : No module named 'Cython'
warnings.warn(e.args[0])
<path to buildroot>/output/build/python-hdbscan-0.8.27/setup.py:92: UserWarning : Due to incompatibilities with Python 3.7 hdbscan nowrequires Cython to be installed in order to built it
warnings.warn("Due to incompatibilities with Python 3.7 hdbscan now")
...
raise ImportError('Cython not fuond ! Please install cython and try again')
ImportError: Cython not fuond ! Please install cython and try again
它试图运行的setup.py
文件确实要求import cython
,但它应该已经安装。我尝试了我能在论坛上看到的每一个命令,但什么也做不到…由于我在虚拟机上安装了几个版本的Python,我认为这可能是问题的原因,但我不确定了…我运行了如下几个命令:
sudo pip install cython
sudo apt --reinstall install cython
sudo python3.7 -m pip install cython
sudo apt-get install cython
一些命令来升级cython, pip…一些命令可以卸载cython然后重新安装…
我不知道该怎么做了…有谁知道我能做什么吗?
您需要将cython作为交叉编译环境的一部分,而不是简单地安装在构建机器上。在构建机器上运行的pip
或apt
都没有帮助。
在Buildroot中,很容易做到这一点:在python-hdbscan.mk
文件中添加对Cython的依赖:
PYTHON_HDBSCAN_DEPENDENCIES += python-cython
为了完整起见,您还需要Config.in
中相应的依赖项:
config BR2_PACKAGE_PYTHON_HDBSCAN
...
select BR2_PACKAGE_PYTHON_CYTHON
...