如何将 Jupyter 部署到 Medium? “AttributeError: 'PosixPath' 对象没有属性 'read'

问题描述

我正在尝试使用 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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...