所以我正在学习PyQt开发,并将其输入到IDLE中的新文件中:
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
def window():
app = QApplication(sys.argv)
win = QDialog()
b1 = QPushButton(win)
b1.setText("Button1")
b1.move(50,20)
b1.clicked.connect(b1_clicked)
b2=QPushButton(win)
b2.setText("Button2")
b2.move(50,50)
QObject.connect(b2,SIGNAL("clicked()"),b2_clicked)
win.setGeometry(100,100,200,100)
win.setWindowTitle("PyQt")
win.show()
sys.exit(app.exec_())
def b1_clicked():
print("Button 1 clicked")
def b2_clicked():
print("Button 2 clicked")
if __name__ == '__main__':
window()
应用程序执行应该执行的操作,即在IDLE中运行时打开一个带有两个按钮的对话框。当我尝试从cmd运行相同的程序时,我收到此消息:
追踪(最近一次通话): 文件“C:\ Python34 \ Basic2buttonapp.py”,第2行,in 来自PyQt4.QtCore import * ImportError:没有名为'PyQt4'的模块
我已经尝试在cmd中键入python.exe,看看我是否在cmd中运行了正确版本的python,但这似乎不是问题所在。我知道它与python 3.4和模块之间的通信有关,但是对我来说这似乎很奇怪只有在尝试从cmd运行它时才会发生。
如果有人有解决方案,我会非常感激。
答案 0 :(得分:0)
这是因为从命令行运行时,您使用的是不同版本的Python与IDLE中的版本(使用不同的已安装软件包)。您可以通过从命令行运行以下命令来查找正在使用的Python:
python -c "import sys;print(sys.executable)"
......或在IDLE中:
import sys
print(sys.executable)
如果这两者不匹配,那就有问题了。要修复它,您需要更新PATH
变量,将IDLE引用的Python可执行文件的父文件夹放在前面。您可以在Windows here上获取有关如何执行此操作的说明。