# -*- coding:utf-8 -*-
import sys
from PySide2.QtWidgets import QApplication, QLabel
print(sys.argv)
if __name__ == '__main__':
dates = QApplication(sys.argv)
label = QLabel('hello world')
label.show()
sys.exit(dates.exec_())
错误
['E:/MayaTool/glTools/test.py']
Traceback (most recent call last):
File "E:/MayaTool/glTools/test.py", line 6, in <module>
dates = QApplication(sys.argv)
TypeError: 'NoneType' object is not callable
** 此代码使用自己的编辑器在python中运行,但在Pycharm中抱怨。有什么问题? **
答案 0 :(得分:2)
您可能已经为您的环境添加了PyMel的MayaDevKit代码编译,其中包含PySide2替代。删除它应该可以解决您的问题。
答案 1 :(得分:0)
如here所示,QApplication
类的初始化接受以sys.argv
运行Python脚本时传递的参数。如您所怀疑,在IDLE中运行时,有参数传递给程序,但在PyCharm中没有传递(0)参数,因此sys.argv
返回None
。 QApplication
的初始化尝试遍历参数列表,因为它期望一个list
字符串(参数)。
一个简单的解决方法是检查sys.argv
是否为None
,例如
# -*- coding:utf-8 -*-
import sys
from PySide2.QtWidgets import QApplication, QLabel
print(sys.argv)
if __name__ == '__main__':
if sys.argv is None:
sys.argv = []
dates = QApplication(sys.argv)
label = QLabel('hello world')
label.show()
sys.exit(dates.exec_())