xyh2695368537 发表于 2023-4-16 13:30:16

ImportError: cannot import name 'NoReturn'


linux 中 python-3.6.1导入celery时报错,ImportError: cannot import name 'NoReturn',要怎么解决,使用的celery版本是 5.1.2

歌者文明清理员 发表于 2023-4-16 13:32:01

这是因为 Celery 5.x 版本中不再支持 NoReturn 类型,但是 Python 3.6 中还需要使用它来支持类型提示。解决方案是将使用 NoReturn 的代码替换为直接使用 None,或者升级到 Python 3.7 及以上版本。

isdkz 发表于 2023-4-16 13:34:28

这个问题是由于Celery 5.1.2不兼容Python 3.6.1导致的。您可以尝试升级Python版本或降级Celery版本来解决这个问题。

这个命令可以让你安装到兼容的 Celery 版本:
pip install Celery --only-binary Celery -i https://mirrors.aliyun.com/pypi/simple

xyh2695368537 发表于 2023-4-16 13:38:38

isdkz 发表于 2023-4-16 13:34
这个问题是由于Celery 5.1.2不兼容Python 3.6.1导致的。您可以尝试升级Python版本或降级Celery版本来解决这 ...

用你这个命令,安装的celery 版本就是5.1.2,还是报错

isdkz 发表于 2023-4-16 13:42:40

xyh2695368537 发表于 2023-4-16 13:38
用你这个命令,安装的celery 版本就是5.1.2,还是报错

pip -V 看看默认的pip命令是不是属于python3.6.1的

xyh2695368537 发表于 2023-4-16 13:43:14

isdkz 发表于 2023-4-16 13:34
这个问题是由于Celery 5.1.2不兼容Python 3.6.1导致的。您可以尝试升级Python版本或降级Celery版本来解决这 ...

解决了解决了,手动指定版本4.1.0,就不会报错了

歌者文明清理员 发表于 2023-4-16 13:46:10

xyh2695368537 发表于 2023-4-16 13:43
解决了解决了,手动指定版本4.1.0,就不会报错了

明明我是最佳答案{:10_244:}

isdkz 发表于 2023-4-16 13:53:01

xyh2695368537 发表于 2023-4-16 13:43
解决了解决了,手动指定版本4.1.0,就不会报错了

解决了就好,我刚刚的命令有一个疏忽,有兼容问题的是Celery的依赖库 prompt-toolkit

所以 --only-binary 应该指定的是 prompt-toolkit 或 :all:

所以用

pip install Celery --only-binary prompt-toolkit -i https://mirrors.aliyun.com/pypi/simple

或者

pip install Celery --only-binary :all: -i https://mirrors.aliyun.com/pypi/simple

来安装就没有问题了,这样 pip 会帮你找到合适的版本,就不用自己去试哪个版本可以用

xyh2695368537 发表于 2023-4-16 13:53:30

歌者文明清理员 发表于 2023-4-16 13:46
明明我是最佳答案

不好意思,不好意思,这个帖子不会自动刷新回复,刚刚只看到他的回复,他也说了版本不匹配,我就给他了{:10_266:}

歌者文明清理员 发表于 2023-4-16 13:56:41

xyh2695368537 发表于 2023-4-16 13:53
不好意思,不好意思,这个帖子不会自动刷新回复,刚刚只看到他的回复,他也说了版本不匹配,我就给他了{: ...

ctrl+f5{:10_266:}
@Twilight6 请问可否……

isdkz 发表于 2023-4-16 13:57:46

歌者文明清理员 发表于 2023-4-16 13:46
明明我是最佳答案

{:10_249:}什么“ Celery 5.x 版本中不再支持 NoReturn 类型,但是 Python 3.6 中还需要使用它来支持类型提示”就是瞎说,他那个python3.6的版本太低才引入不了 NoReturn 的

isdkz 发表于 2023-4-16 14:16:02

isdkz 发表于 2023-4-16 13:53
解决了就好,我刚刚的命令有一个疏忽,有兼容问题的是Celery的依赖库 prompt-toolkit

所以 --only-bin ...

好吧,我刚刚试了一下二进制编译版本也有问题{:10_277:}

歌者文明清理员 发表于 2023-4-17 09:12:53

isdkz 发表于 2023-4-16 14:16
好吧,我刚刚试了一下二进制编译版本也有问题

页: [1]
查看完整版本: ImportError: cannot import name 'NoReturn'