【问题标题】:Python - Using Qt5 to build a simple web browserPython - 使用 Qt5 构建一个简单的网络浏览器
【发布时间】:2016-02-08 09:45:31
【问题描述】:

我正在尝试构建这个示例:

https://www.linuxvoice.com/build-a-web-browser-with-20-lines-of-python/

为了完整起见,我将在此处重新发布:

from PyQt5.QtCore import QUrl 
from PyQt5.QtWidgets import QApplication 
from PyQt5.QtWebKitWidgets import QWebView 
import sys

app = QApplication(sys.argv) 
view = QWebView() 
view.show() 
view.setUrl(QUrl(“http://linuxvoice.com”)) 
app.exec()

我也使用这里的指示来安装pyqt5

https://askubuntu.com/questions/612314/how-to-install-pyqt-for-python3-in-ubunt-14-10

并且还安装了 Qt5。所以我应该拥有他们在 linuxvoice 教程中所说的一切。

当我想用 python 2.7 运行它时,它说:

 File "brows.py", line 9 SyntaxError: Non-ASCII character '\xe2' in file brows.py on line 9, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

使用 Python3:

File "brows.py", line 9
view.setUrl(QUrl(“http://linuxvoice.com”)) 
SyntaxError: invalid character in identifier

有人设法完成这项工作吗?

【问题讨论】:

标签: python qt python-3.x pyqt


【解决方案1】:

所以这是实际的答案。我有同样的问题,很快就发现了。 view.setUrl(QUrl(“http://linuxvoice.com”)) 请注意,他们的代码使用引号,看看引号与普通引号的比较。

正常:“”

他们的:“”

基本上,他们使用的是 Python 无法处理的奇怪的 ASCII 引号。防止复制粘贴的真正偷偷摸摸的方法。 无论哪种方式,此代码都不再起作用,因为在最新版本的 PyQt5 中,QtWebKitWidgets 已被删除。

【讨论】:

    【解决方案2】:

    您的代码中某处有一个杂散字节。它之前在 StackOverflow 上弹出,有一个很好的方法可以找到它:Python "SyntaxError: Non-ASCII character '\xe2' in file"。

    【讨论】:

    • 所以我解决了这个问题,现在他们都指向http说标识符中的无效字符。
    • 你是从别处复制代码吗?如果是这样,它可能隐藏了 webformatting 字节,请尝试删除该行并从头开始重新编码。
    • 我重写了所有内容。我仍然得到:文件“brows.py”,第 10 行 app.exec() ^ SyntaxError: invalid syntax
    • @Quubix。你需要在pyqt中使用app.exec_(),因为exec是python2中的关键字。非ascii字符是左/右双引号(“”),通常在网页中使用而不是标准双引号(")。
    猜你喜欢
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    • 2015-03-23
    • 2019-08-07
    相关资源
    最近更新 更多