0

私はPythonとその使用法に本当に慣れていません。

PyQt で Python UI を作成しました。

from PyQt4 import QtCore, QtGui

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName(_fromUtf8("MainWindow"))
        MainWindow.resize(1000, 692)
        MainWindow.setStyleSheet(_fromUtf8(""))
        ...
        ...

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(_translate("MainWindow", "x", None))
        self.pushButton_2.setText(_translate("MainWindow", "x", None))


if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    MainWindow = QtGui.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

コマンドを実行するとうまくpython main1.py いく__main__

Ui_MainWindow クラス以外のすべてのパーツを削除し、次のmain.pyような新しいファイルを作成しました。

from main1 import *
from PyQt4 import QtCore, QtGui

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)

if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    MainWindow = QtGui.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

クラスにアクセスしてオブジェクトを作成できます。しかし、python main.pyコマンドを実行すると、このエラーが表示されます。

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    from main1 import *
  File "/home/x/main1.py", line 38
SyntaxError: Non-ASCII character '\xc4' in file /home/x/main1.py on line 38, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

_fromUtf8問題は変数の間違った使い方だと思います。どうすれば解決できますか、または問題にどのようにアプローチする必要がありますか? ありがとうございました。

4

1 に答える 1

0

ファイル main1.py でエディタで使用するエンコーディングの問題です。

> 128の 16 進数の文字があるc4ため、ascii は使用できません。

次のエンコーディング行のいずれかを main1.py の最初の行の 1 つに挿入してみてください。(最後のものをお勧めします)そしてそのファイルのエンコーディングを見つけて設定しようとします。

      # -*- coding: latin-1 -*-


      #!/usr/bin/python
      # -*- coding: iso-8859-15 -*-


      #!/usr/bin/python
      # -*- coding: utf-8 -*-
      # I recommend utf8!

http://www.python.org/dev/peps/pep-0263/

于 2013-05-03T11:10:28.080 に答える