【问题标题】:Cannot run PySide Qt program inside PyCharm IDE. Have to run from shell using pythonw or python.app无法在 PyCharm IDE 中运行 PySide Qt 程序。必须使用 pythonw 或 python.app 从 shell 运行
【发布时间】:2014-05-03 11:04:56
【问题描述】:

我在 Pycharm 中制作了一个简单的“pst.py”(hello world)程序。当我运行它时,它会崩溃:

Qt 内部错误:无法加载 qt_menu.nib。 .nib 文件 应该放在 QtGui.framework/Versions/Current/Resources/ 或 应用程序包的资源目录。

在 PyCharm 中,通过 Python 控制台,所有模块看起来都可用:

>>>     print(PySide.QtCore.qVersion())
4.7.4
>>> print(PySide.__version__)
1.1.2

所以我去了终端并尝试使用“python.app”和“pythonw”从命令行运行相同的程序。该程序同时使用 python.apppythonw 运行良好。如果我只使用 python pst.py,我也会遇到同样的崩溃。

vt102:dBaseProject sloter$ python.app pst.py
vt102:dBaseProject sloter$ which python.app
/Users/sloter/anaconda/bin/python.app

vt102:dBaseProject sloter$ pythonw pst.py
vt102:dBaseProject sloter$ which pythonw
/Users/sloter/anaconda/bin/pythonw

我认为 PyCharm IDE 使用的是相同的路径 (Users/sloter/anaconda/bin/)

我观看了一个 youtube 视频,其中一个人在 PyCharm 中编写了一个非常相似的程序,然后在 Pycharm 中运行,一切正常。

那么有什么想法我需要改变以使我能够完全在 PyCharm 中开发 PySide/QT 程序?

谢谢

ps 这是我尝试运行的“pst.py”的代码

#!/Users/sloter/anaconda/bin/python

# Import PySide classes
import sys
from PySide.QtCore import *
from PySide.QtGui import *


# Create a Qt application
app = QApplication(sys.argv)
# Create a Label and show it
label = QLabel("Hello World")
label.show()
# Enter Qt application main loop
app.exec_()
sys.exit()

【问题讨论】:

  • 你试过这个shebang吗:#!/Users/sloter/anaconda/bin/python.app/Contents/MacOS/python
  • 另外,你用过macdeployqt吗?
  • 目录/Users/sloter/anaconda/bin/python.app 不存在。 python.app 是文件而不是目录。我不确定macdeployqt“部署”实际上做了什么——我想我用print(PySide.QtCore.qVersion()) 4.7.4 =>>> print(PySide.__version__) =1.1.2说明(证明?)Qt支持已正确安装。但也许我不懂部署。
  • 此外,由于它在命令行中工作,但不是 pycharm ide,这让我觉得问题出在那儿,而不是在 Qt 的安装(部署?)中。
  • 你尝试过复制还是使用macdeployqt?

标签: python qt pyside pycharm


【解决方案1】:

Qt 内部错误:无法加载 qt_menu.nib。 .nib 文件应放在 QtGui.framework/Versions/Current/Resources/ 或应用程序包的资源目录中。

让你前进的一种方法是:

mkdir -p application.app/Contents/Frameworks/QtGui.framework/Versions/Current/Resources/
cp -r $(QTLIBDIR)/QtGui.framework/Versions/4/Resources/qt_menu.nib application.app/Contents/Frameworks/QtGui.framework/Versions/Current/Resources/

一般来说,如果您碰巧手动复制这些,我个人建议使用 macdeployqt。

【讨论】:

    猜你喜欢
    • 2020-10-21
    • 1970-01-01
    • 2012-08-26
    • 2015-11-22
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    相关资源
    最近更新 更多