我做了一个机器学习谷歌协作,使用网络服务器来显示数据。但是我在运行的时候不能连接外网ip和端口,我想是因为端口没有打开。
我试着打开端口,但Google Colaboratory机器在docker上运行
if multiple_process:
run(host="172.28.0.2", port=80, server='paste')
else:
run(host="172.28.0.2", port=8080, server='paste')发布于 2019-06-07 00:18:55
Colab后端经过防火墙保护,无法通过公共互联网直接联系。
如果您的目标是从Colab前端连接到在后端运行的服务器,Colab会自动将请求代理到本地主机端口。这里的文档中提供了一个示例:
https://colab.research.google.com/notebooks/snippets/advanced_outputs.ipynb#scrollTo=_7dYIo63EdgL
重现下面的相关代码片段,它启动一个HTTP服务器,然后从单元输出中加载它:
import portpicker
import threading
import socket
import IPython
from six.moves import socketserver
from six.moves import SimpleHTTPServer
class V6Server(socketserver.TCPServer):
address_family = socket.AF_INET6
class Handler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
# If the response should not be cached in the notebook for
# offline access:
# self.send_header('x-colab-notebook-cache-control', 'no-cache')
self.end_headers()
self.wfile.write(b'''
document.querySelector('#output-area').appendChild(document.createTextNode('Script result!'));
''')
port = portpicker.pick_unused_port()
def server_entry():
httpd = V6Server(('::', port), Handler)
# Handle a single request then exit the thread.
httpd.serve_forever()
thread = threading.Thread(target=server_entry)
thread.start()
# Display some HTML referencing the resource.
display(IPython.display.HTML('<script src="https://localhost:{port}/"></script>'.format(port=port)))https://stackoverflow.com/questions/56473719
复制相似问题