从pyxdameraulevenshtein导入会出现以下错误

pyxdameraulevenshtein==1.5.3
pandas==1.1.4
scikit-learn==0.20.2. 

Numpy是1.16.1。

在Python 3.6中工作良好,在Python 3.7中问题。

有人在使用Python 3.7(3.7.9)时遇到过类似的问题吗?

from pyxdameraulevenshtein import normalized_damerau_levenshtein_distance as norm_dl_dist
__init__.pxd:242: in init pyxdameraulevenshtein
    ???
E   ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject

当前回答

对于任何使用诗歌的人来说,有必要进行实验。对于numpy<1.20依赖项的应用程序,New-installer设置为true才能正确构建,即:

poetry config experimental.new-installer true

默认情况下是正确的,但如果它被改变了(就像我的情况一样),它会让你识破。

我的应用程序使用Tensorflow,因此我没有升级到>1.20的选项。诗歌也不支持无二进制依赖。

其他回答

我在python3.10.4,numpy1.21.5中遇到了同样的问题,我只有在通过pip卸载numpy和pip安装numpy将numpy更新到1.22.3后才解决了这个问题。只有pip install -upgrade numpy没有工作。

PS D:\quant\vnpy-master\examples\veighna_trader> python .\run.py Traceback (most recent call last): File "D:\quant\vnpy-master\examples\veighna_trader\run.py", line 31, in from vnpy_optionmaster import OptionMasterApp File "D:\it_soft\python3.10.4\Lib\site-packages\vnpy_optionmaster__init__.py", line 26, in from .engine import OptionEngine, APP_NAME File "D:\it_soft\python3.10.4\Lib\site-packages\vnpy_optionmaster\engine.py", line 34, in from .pricing import binomial_tree_cython as binomial_tree File "binomial_tree_cython.pyx", line 1, in init binomial_tree_cython ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject

对于任何使用诗歌的人来说,有必要进行实验。对于numpy<1.20依赖项的应用程序,New-installer设置为true才能正确构建,即:

poetry config experimental.new-installer true

默认情况下是正确的,但如果它被改变了(就像我的情况一样),它会让你识破。

我的应用程序使用Tensorflow,因此我没有升级到>1.20的选项。诗歌也不支持无二进制依赖。

我用的是Python 3.8.5。这听起来太简单了,但我有同样的问题,我所做的只是重新安装numpy。一去不复返了。

pip install --upgrade numpy

or

pip uninstall numpy
pip install numpy

我在树莓派3中也面临着同样的问题。实际上这个错误发生在熊猫身上。虽然tensorflow需要numpy~=1.19.2,但是pandas不符合它。所以,我已经升级(因为降级不是)我的numpy到最新版本,一切都很好!!!!。

root@raspberrypi:/home/pi# python3
Python 3.7.3 (default, Jan 22 2021, 20:04:44) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np 
>>> np.__version__
'1.21.5'
>>> import pandas as pd
>>> pd.__version__
'1.3.5'
>>> import tensorflow as tf
>>> tf.__version__
'2.4.0'
>>> tf.keras.__version__
'2.4.0'
>>> tf.keras.layers
<module 'tensorflow.keras.layers' from '/usr/local/lib/python3.7/dist-packages/tensorflow/keras/layers/__init__.py'>

这里也有同样的问题- https://github.com/bitsy-ai/tensorflow-arm-bin/issues/5

Tensorflow来源:https://github.com/bitsy-ai/tensorflow-arm-bin

对于几乎相同的图像:python:3.7-slim-buster

我今天才开始有这个问题,以前是不存在的。

我通过从require .txt文件中删除numpy来解决这个问题,并在我的Dockerfile中执行以下操作:

RUN pip3 install --upgrade  --no-binary numpy==1.18.1 numpy==1.18.1 \
&& pip3 install -r requirements.txt 

我使用了一些旧版本的keras和它的库,升级到numpy 1.20.0对这些库不起作用。但我认为解决方案包含在我给你的第一个命令中,它告诉pip不要编译numpy,而是下载一个预编译的版本。

命令中的技巧是,您可能会发现有人告诉您使用pip的——no-binary选项来解决问题,但他们没有指定如何解决问题,这可能很棘手(就像我遇到的那样);您必须在命令中编写两次包才能使其工作,否则PIP将向您抛出一个错误。

我认为第一个命令中的——upgrade选项是不必要的。