例外:版本不匹配:这是“cffi”包版本 1.13.1,

Red*_*wan 4 python pip numba

我尝试使用 CUDA 运行代码,出现此错误,系统似乎有问题

完整代码:我知道了CUDACast #10a - 你的第一个 CUDA Python 程序没有名为 numbapro 的模块

import numpy as np
from timeit import default_timer as timer
from numba import vectorize

@vectorize(["float32(float32, float32)"], target='cuda')


def VectorAdd(a, b):
        return a + b

def main():
    N = 32000000

    A = np.ones(N, dtype=np.float32)
    B = np.ones(N, dtype=np.float32)
    C = np.zeros(N, dtype=np.float32)

    start = timer()
    C = VectorAdd(A, B)
    vectoradd_timer = timer() - start

    print("C[:5] = " + str(C[:5]))
    print("C[-5:] = " + str(C[-5:]))

    print("VectorAdd took %f seconds" % vectoradd_timer)

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

输出:

例外:版本不匹配:这是“cffi”包版本 1.13.1,位于“/usr/local/lib/python2.7/dist-packages/cffi/api.pyc”。当我们导入顶级'_cffi_backend'扩展模块时,我们得到版本1.5.2,位于'/usr/lib/python2.7/dist-packages/_cffi_backend.x86_64-linux-gnu.so'。两个版本应该是相同的;检查您的安装。

也许是这个原因:

$which pip
/usr/bin/pip
Run Code Online (Sandbox Code Playgroud)

Sal*_*Ali 7

您必须尝试分别删除所有 cffi 软件包和已安装的版本1.5.2

sudo pip install cffi==1.5.2
Run Code Online (Sandbox Code Playgroud)

或者您可以通过更新旧版本来确保版本一致。

sudo apt-get install python-cffi
Run Code Online (Sandbox Code Playgroud)

希望对你有帮助

  • 哈哈,我知道这一点,但我不喜欢自己改变它。真的非常感谢。 (2认同)

小智 6

将 pip 更新到最新版本解决了我的问题。

pip3 install --upgrade pip
Run Code Online (Sandbox Code Playgroud)