我在miniconda3中安装了linux aarch64架构中的kneed包。 当我在 python 中导入 kneed 时, 我收到以下错误
import kneed
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/su/miniconda3/envs/myenv/lib/python3.10/site-packages/kneed/__init__.py", line 4, in <module>
from .knee_locator import KneeLocator
File "/home/su/miniconda3/envs/myenv/lib/python3.10/site-packages/kneed/knee_locator.py", line 3, in <module>
from scipy.signal import argrelextrema
File "/home/su/miniconda3/envs/myenv/lib/python3.10/site-packages/scipy/signal/__init__.py", line 309, in <module>
from . import _sigtools, windows
File "/home/su/miniconda3/envs/myenv/lib/python3.10/site-packages/scipy/signal/windows/__init__.py", line 41, in <module>
from ._windows import *
File "/home/su/miniconda3/envs/myenv/lib/python3.10/site-packages/scipy/signal/windows/_windows.py", line 7, in <module>
from scipy import linalg, special, fft as sp_fft
File "/home/su/miniconda3/envs/myenv/lib/python3.10/site-packages/scipy/__init__.py", line 211, in __getattr__
return _importlib.import_module(f'scipy.{name}')
File "/home/su/miniconda3/envs/myenv/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/home/su/miniconda3/envs/myenv/lib/python3.10/site-packages/scipy/fft/__init__.py", line 92, in <module>
from ._helper import next_fast_len
File "/home/su/miniconda3/envs/myenv/lib/python3.10/site-packages/scipy/fft/_helper.py", line 3, in <module>
from ._pocketfft import helper as _helper
File "/home/su/miniconda3/envs/myenv/lib/python3.10/site-packages/scipy/fft/_pocketfft/__init__.py", line 3, in <module>
from .basic import *
File "/home/su/miniconda3/envs/myenv/lib/python3.10/site-packages/scipy/fft/_pocketfft/basic.py", line 6, in <module>
from . import pypocketfft as pfft
ImportError: /usr/lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /home/su/miniconda3/envs/myenv/lib/python3.10/site-packages/scipy/fft/_pocketfft/pypocketfft.cpython-310-aarch64-linux-gnu.so)
当我检查 libstdc++.so.6 时,
ls /usr/lib/aarch64-linux-gnu | grep libstdc++.so.6
libstdc++.so.6
libstdc++.so.6.0.28
我可以知道我是否知道安装任何软件包来解决ImportError?
以下是我安装的软件包
Package Version
---------------------------- ------------
absl-py 1.2.0
appdirs 1.4.4
astunparse 1.6.3
attrs 22.1.0
audioread 2.1.9
cachetools 5.2.0
certifi 2022.6.15
cffi 1.15.1
charset-normalizer 2.1.0
cycler 0.11.0
decorator 5.1.1
distlib 0.3.5
docopt 0.6.2
filelock 3.8.0
flatbuffers 2.0
fonttools 4.34.4
fpdf 1.7.2
gast 0.4.0
google-auth 2.10.0
google-auth-oauthlib 0.4.6
google-pasta 0.2.0
grpcio 1.47.0
h5py 3.7.0
hdfs 2.7.0
idna 3.3
joblib 1.1.0
jsonschema 4.9.1
keras 2.9.0
Keras-Preprocessing 1.1.2
kiwisolver 1.4.4
kneed 0.8.1
libclang 14.0.6
librosa 0.9.2
llvmlite 0.39.0
logger 1.4
Markdown 3.4.1
MarkupSafe 2.1.1
matplotlib 3.5.2
numba 0.56.0
numpy 1.22.0
oauthlib 3.2.0
opt-einsum 3.3.0
packaging 21.3
pandas 1.4.3
Pillow 9.2.0
pip 22.2.2
platformdirs 2.5.2
pooch 1.6.0
protobuf 3.19.4
pyasn1 0.4.8
pyasn1-modules 0.2.8
pycparser 2.21
pyparsing 3.0.9
pyrsistent 0.18.1
python-dateutil 2.8.2
python-Levenshtein 0.12.2
pytz 2022.1
PyYAML 6.0
rdp 0.8
requests 2.28.1
requests-oauthlib 1.3.1
resampy 0.4.0
rsa 4.9
scikit-learn 1.1.2
scipy 1.9.0
seaborn 0.11.2
setuptools 63.4.3
six 1.16.0
SoundFile 0.10.3.post1
tensorboard 2.9.1
tensorboard-data-server 0.6.1
tensorboard-plugin-wit 1.8.1
tensorflow 2.10.0rc0
tensorflow-cpu-aws 2.10.0rc0
tensorflow-estimator 2.9.0
tensorflow-io-gcs-filesystem 0.26.0
termcolor 1.1.0
threadpoolctl 3.1.0
typing_extensions 4.3.0
urllib3 1.26.11
virtualenv 20.16.3
watchdog 2.1.9
Werkzeug 2.2.2
wheel 0.37.1
wrapt 1.14.1
此外,软件包
kears, kneed, librosa, seaborn, sklearn and tensorflow
也给出了同样的错误。我不确定在哪里以及如何检查包版本的依赖关系。我可以知道如何知道哪些版本与 numpy 版本兼容吗?我应该使用 miniconda3中的 pip install 为这些软件包安装哪些版本
kears, kneed, librosa, seaborn, sklearn, tensorflow and numpy
。
实际上版本“GLIBCXX_3.4.30”存在,但不在他们正在搜索的文件夹中。 您需要做的是通过以下方式找到该文件夹:
sudo find / -name "libstdc++.so.6*"
它会显示系统中有很多文件,选择最大的一个,即末尾带有“libstdc++.so.6.0.30”的文件。 检查它是否包含您要查找的版本:
strings /usr/local/share/miniconda/envs/ffcv/lib/libstdc++.so.6.0.30 | grep GLIBCXX
如果有,您需要复制它并删除原始的:
sudo cp /usr/local/share/miniconda/pkgs/libstdcxx-ng-12.2.0-h46fd767_19/lib/libstdc++.so.6.0.30 /usr/lib/x86_64-linux-gnu/
sudo rm /usr/lib/x86_64-linux-gnu/libstdc++.so.6
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30 /usr/lib/x86_64-linux-gnu/libstdc++.so.6
你就在这里!希望有帮助..
通过 conda 安装 gcc 12.1,如下所示:
conda install gcc=12.1.0
通过设置适当的环境变量确保其库位于库搜索路径中:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/miniconda3/lib
(使用您特定 conda 环境的
lib
也可能有效:$HOME/miniconda3/env/YOUR_ENV_NAME/lib
)
然后启动您的 Python 脚本。
这对我有用。它在 /usr/lib/aarch64-linux-gnu 中查找,而正确的版本可在 $HOME/anaconda3/lib 中找到。
您可以使用以下内容来确保它在anaconda3/lib下可用
sudo find / -name "libstdc++.so.6.0.30"
要修复,请使用正确的路径更新环境变量
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/anaconda3/lib
就我而言,我运行的是 Amazon Linux,我所要做的就是导出 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/anaconda3/lib