问题描述
我正在尝试使用 jupyter_to_medium 将 Jupyter Notebook 部署到 Medium,但仍然遇到相同的错误。 Safari 和 Chrome 都试过了。我有集成令牌。
MacBook Pro 2017 年中
Failed to post to Medium
Returned error message below
"AttributeError: 'PosixPath' object has no attribute 'read'
Traceback (most recent call last):
File \"/usr/local/lib/python3.7/site-packages/jupyter_to_medium/_bundler.py\",line 37,in upload
data = publish(**kwargs)
File \"/usr/local/lib/python3.7/site-packages/jupyter_to_medium/_publish_to_medium.py\",line 299,in publish
chrome_path,save_markdown,table_conversion)
File \"/usr/local/lib/python3.7/site-packages/jupyter_to_medium/_publish_to_medium.py\",line 41,in __init__
self.nb = self.get_notebook()
File \"/usr/local/lib/python3.7/site-packages/jupyter_to_medium/_publish_to_medium.py\",line 76,in get_notebook
return nbformat.read(self.filename,as_version=4)
File \"/usr/local/lib/python3.7/site-packages/nbformat/__init__.py\",line 141,in read
return reads(fp.read(),as_version,**kwargs)
AttributeError: 'PosixPath' object has no attribute 'read'
"
解决方法
我在 Python3.7 中遇到了同样的错误。以下是对我有用的方法:
此函数调用失败的原因reads(fp.read(),as_version,**kwargs) in File \"/usr/local/lib/python3.7/site-packages/nbformat/__init__.py\".
显然,fp
是路径 string
,您不能直接在其上使用 read()
。
变化:
在它之前添加以下几行:
text = None
with open(fp,'r') as f:
text = f.read()
并更新原行
return reads(fp.read(),**kwargs)
到
return reads(text,**kwargs)