【问题标题】:Why is webbrowser lib acting differently when run locally vs. remotely?为什么在本地和远程运行时 webbrowser lib 的行为不同?
【发布时间】:2014-06-25 03:38:16
【问题描述】:

我正在编写一个 Flask (python 2.7) 应用程序,其中一个函数使用 webbrowser lib 在用户浏览器中打开几个新选项卡(类似于 Kayak)。

当我在本地运行该应用程序时,它可以正常工作。但是当我部署到 OpenShift 时,该应用程序不会启动选项卡或指示任何错误。 webbrowser 在我的本地机器上与 PaaS 上的运行方式不同有什么原因吗?我已经在 OSX 上的 Chrome / Safari / Firefox 和 Android 上的 Chrome 中尝试过这个。感谢您的帮助!

函数如下:

def launch(data):
  try:
    for x in data:
      webbrowser.open(x['url'],new=2)
      # i've also tried .open_new_tab(x['url'])
  except TypeError:
    return render_template('error.html')

这是tail的输出:

[24/Jun/2014:23:19:24 -0400] "GET /-JQDELftipTPc12ohHy4 HTTP/1.1" 200 2563 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36"
[24/Jun/2014:23:19:25 -0400] "GET /static/style.css HTTP/1.1" 304 - "http://tshare-nealrs.rhcloud.com/-JQDELftipTPc12ohHy4" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36"
[24/Jun/2014:23:19:25 -0400] "GET /static/share.js HTTP/1.1" 304 - "http://tshare-nealrs.rhcloud.com/-JQDELftipTPc12ohHy4" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36"

【问题讨论】:

    标签: python python-2.7 flask openshift python-webbrowser


    【解决方案1】:

    webbrowser 在运行 Python 的机器上打开浏览器。当你在开发的时候,运行 Python 的机器和用户浏览的机器是一回事,一切似乎都正常。当您部署到 OpenShift 时,运行 Python 的机器就是部署代码的 OpenShift 框……这根本不是您想要打开新浏览器实例的地方。

    相反,您需要通过 JavaScript 的window.open 触发几个新窗口打开。这将导致浏览器打开几个新选项卡,而不是在运行服务器代码的机器上调用新的浏览器进程。

    【讨论】:

    • Blerg,当然。这就是为什么我不应该在 4 小时的睡眠中编码。我实际上是想避免window.open(Chrome 问题),但我会找到另一种解决方案。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2020-04-03
    • 2014-06-17
    • 2012-02-04
    • 1970-01-01
    • 2015-01-02
    • 1970-01-01
    • 2012-09-16
    • 2012-05-29
    相关资源
    最近更新 更多