如何在服务器上运行Jupyter Notebook

时间:2018-02-11 11:23:36

标签: server jupyter-notebook

我之前在我的本地计算机和Jupyter Hub上使用过Jupyter Notebook,但现在我尝试在我的Ubuntu服务器上安装它,以便我可以从任何地方访问它,但我可以&# 39;让它发挥作用。

我尝试使用SSH隧道,但后来我没有获得正确的权限,而且我也不想让我的分享全局开放。

我在服务器上这样做了:

ssh -f user@server -L 8889:localhost:8889 -N

在我使用的本地机器上:

Unexpected error while saving file: Untitled.ipynb [Errno 13] Permission denied: '/home/user/.local/share'

当我创建一个新的Notebook时,它说:

sudo

当我使用com.lowagie.text.Table tab = new Table(6, 6); // #rows, #columns ResultSet res = state.executeQuery(…); tab.addCell("Designation"); … tab.addCell("PV-TVAC"); tab.setWidth(100); tab.setTableFitsPage(true); while(res.next()) { tab.addCell(res.getString("designation")); // doesn't always fit … tab.addCell(res.getString("PV_TVAC")); } 以root身份运行Jupyter Notebook时,它确实有效,但这并不是推荐使用Jupyter Notebook的方法。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

看起来jupyter很好,但你没有权利在你想在终端上写的文件夹中写道:

chmod 666 /home/user/.local/share

sudo chmod 666 /home/user/.local/share

/home/user/.local/share是您要保存的地方 chmod 666将授予您在那里写作和阅读的权利。您可以选择而不是666其他组合,如果您想要写入读取权限等,则可以选择。有关http://www.thinkplexx.com/learn/article/unix/command/chmod-permissions-flags-explained-600-0600-700-777-100-etc的更多信息。 sudo因为你可能需要有权给予权利。

答案 1 :(得分:0)

如上一个答案所述,这是权限问题:您可以尝试

def get_page():
    try:
        with requests.Session() as s:
            url = q.get()             
            with open("listings2.txt", "a") as f:
               for page in range(1, 101):                   
                    soup = BeautifulSoup(s.get(url,params= {"page":str(page)}).content,"lxml")

                    script = soup.find("script", text=re.compile("window.__WEBPACK_MANIFEST__"))
                    print (script)
                    json_dict = loads(re.search("window.__PAGE_DATA__\s+=\s+ (\{.*?\});", script.text).group(1))
                    listing_data = json_dict["listings2"]                 
                    with append_lock:
                        f.write(str(soup))
                        print(url+'&page='+str(page))
                    if len(str(soup)) == 2:
                        q.task_done()                        
                        break
                    else:                     
                        pass

    except Exception as e:
        print(e)