我在Mac python 3.8上面临pycrypto的语法错误,令人惊讶的是它在linux系统上传递,我知道有人建议删除pycrypto并安装pycryptodome,但我不明白为什么上面的工作在Linux上,而不是在MAC上使用相同的python版本?
Python 3.8.5 (v3.8.5:580fbb018f, Jul 20 2020, 12:11:27)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import Crypto.PublicKey.RSA
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/manish/pyvenv/lib/python3.8/site-packages/Crypto/PublicKey/RSA.py", line 585
except ValueError, IndexError:
^
SyntaxError: invalid syntax
在linux上
python
Python 3.8.5 (default, Jul 24 2020, 17:46:42)
[GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import Crypto.PublicKey.RSA
>>>
Pycrypto version 2.6.1
找到问题。把它贴在这里供别人参考,因为我很难弄清楚这个问题。感谢我的一位同事发现了下面的链接。这是因为setuptools的版本,参考https://github.com/pycrypto/pycrypto/issues/327在降级setuptools<58.0.0之后,它可以正常工作。此外,确保它不会从pip缓存中拾取车轮,因此运行以下步骤
pip cache purge
pip uninstall wheel
pip install pycrypto