当我在Python3中导入Avro时出现语法错误:invalid syntax。

7

我只想在Python3中导入avro,但是当我导入avro schema时出现错误。

import os
import string
import sys

from avro import schema
...
# others are not matter

我只能读取

Traceback (most recent call last):
  File "/home/ktz/IdeaProjects/HadoopExample/src/main/python/chap4/writer_pairs.py", line 5, in <module>
    from avro import schema
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 954, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 896, in _find_spec
  File "<frozen importlib._bootstrap_external>", line 1139, in find_spec
  File "<frozen importlib._bootstrap_external>", line 1115, in _get_spec
  File "<frozen importlib._bootstrap_external>", line 1096, in _legacy_get_spec
  File "<frozen importlib._bootstrap>", line 444, in spec_from_loader
  File "<frozen importlib._bootstrap_external>", line 533, in spec_from_file_location
  File "/usr/local/lib/python3.5/dist-packages/avro-1.8.1-py3.5.egg/avro/schema.py", line 340
    except Exception, e:
                    ^
SyntaxError: invalid syntax

非常抱歉,我在Python方面还是新手。


删除文件中的逗号,并写成 as(如 except Exception as e: - Willem Van Onsem
可能是如何在Python 3.5.2中读取Avro文件的重复问题。 - ppasler
请参考此链接:https://dev59.com/MZzha4cB1Zd3GeqPJLQk。 - ppasler
很奇怪。它说“avro-1.8.1-py3.5.egg”,似乎是针对Python 3.5的,但错误消息指向了Python 2特定的语法。这可能是一个库的错误。 - user2357112
@ppasler 嗯...也许是这样,但我会把它保留给像我一样的Python新手。谢谢! - ParkMinchul
2个回答

22

如果你正在使用Python3,你需要使用avro-python3包而不是avro。


现在这个已经过时了,对于使用最新的avro和Python 3的人来说。 - kojiro

6

您正在使用Python2版本的Avro代码,如果在Python2中运行相同代码,则不会出现错误,否则请安装与Python3兼容的Avro。


你说得对!真的非常感谢你的善意。这对我来说非常有帮助!@Harry - ParkMinchul
很高兴能够帮助。 - Harry
1
现在这个已经过时了,对于使用最新的avro和Python 3的人来说。 - kojiro

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接