我正在运行的脚本中有以下几行:
api_xml = os.path.join(opts.out, os.path.basename(
opts.api_raw).replace('.raw', '.xml'))
使用Python 3.7运行时,出现错误:
Traceback (most recent call last):
File "generate_code.py", line 32, in <module>
opts.api_raw).replace('.raw', '.xml'))
File "/usr/lib/python3.7/posixpath.py", line 146, in basename
p = os.fspath(p)
TypeError: expected str, bytes or os.PathLike object, not NoneType
在我看来,这就像一个简单的联接,然后替换,不确定为什么会失败。
答案 0 :(得分:2)
TypeError: expected str, bytes or os.PathLike object, not NoneType
表示您将None
传递给了需要路径的函数。
在尝试构建api_xml
之前,请尝试添加以下行:
assert opts.out is not None
assert opts.api_raw is not None