谷歌 Colab ngrok 转换为 python

Posted

技术标签:

【中文标题】谷歌 Colab ngrok 转换为 python【英文标题】:Google Colab ngrok convert to python 【发布时间】:2020-04-07 23:40:14 【问题描述】:

我有一个带有以下命令的 Google Colab 笔记本

!wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip

!unzip ngrok-stable-linux-amd64.zip

LOG_DIR = './log'
get_ipython().system_raw(
    'tensorboard --logdir  --host 0.0.0.0 --port 6006 &'
    .format(LOG_DIR)
)

这些命令在 Google Colab 中运行良好,没有任何错误。但是当我在 python 中运行相同的程序时会出错。

Python 演示.py

import sys, json
import requests
from IPython import get_ipython
import requests

LOG_DIR = './log'

get_ipython().system_raw(
    'tensorboard --logdir  --host 0.0.0.0 --port 8001 &'
    .format(LOG_DIR)
)

错误:第 9 行:AttributeError:“NoneType”对象没有属性“system_raw”

如何在 python 中解决这个错误?

【问题讨论】:

从错误信息中你明白了什么?你检查过get_ipython的值,有没有调试过? 如果你指点我调试获取 ipython.system.raw,我将不胜感激。我在谷歌上研究过我读到的大部分文献都是关于谷歌合作的。也许您知道我尚未测试过的更好的调试方法。请告诉我一些指示 肯定有一种方法可以做到这一点而不需要任何与 IPython 相关的东西吗?你能解释一下这段代码的作用/意图吗? 您似乎不能将get_ipython() 与普通的python 一起使用,因为它不会自动运行ipython 并且get_ipython() 无法获得它。有IPythom start_ipython(),但它运行ipython shell,但它等待用户命令,而不是来自文件的命令。您必须使用ipython 运行它。 你不能用os.system('tensorboard --logdir --host 0.0.0.0 --port 8001 &'.format(LOG_DIR)) 【参考方案1】:

我是否可以建议尝试使用pyngrok 之类的方法以编程方式为您管理ngrok 隧道?完全披露,我是它的开发者。 Here are the docs,如果您有兴趣。

【讨论】:

救命稻草,很棒的项目老兄。

以上是关于谷歌 Colab ngrok 转换为 python的主要内容,如果未能解决你的问题,请参考以下文章

如何在 google colab 中使用 ngrok?

无法在 google colab 上完成 ngrok 隧道连接

如何从 Google Colab Notebook 中杀死 Ngrok 隧道

在 Google Colab 上通过 ngrok 运行烧瓶应用程序时,flask-ngrok 返回“隧道 _________.ngrok.io 未找到”[重复]

python 谷歌Colab

如何使用 ngrok 公开在 localhost 上运行的 neo4j 实例以供 google colab 使用?