Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 导入/安装PyQt时出错_Python 3.x - Fatal编程技术网

Python 3.x 导入/安装PyQt时出错

Python 3.x 导入/安装PyQt时出错,python-3.x,Python 3.x,我和PyQt有很多麻烦。我下载了二进制安装程序,确保它是正确的版本(4.15.5,64位),并认为我完成了。现在,我有两个问题,这完全阻止了我在Python中使用它。首先,当我输入'from pyqt4 import qtcore'(或者类似的内容,我现在不看命令)时,它返回'ImportError:没有名为“pyqt4”的模块'。所以我想我可以尝试在designer中创建一个表单,并使用pyuic进行转换。不。显然,“pyuic不是可识别的命令或文件”。看起来我做错了什么,但我已经多次重新安装

我和PyQt有很多麻烦。我下载了二进制安装程序,确保它是正确的版本(4.15.5,64位),并认为我完成了。现在,我有两个问题,这完全阻止了我在Python中使用它。首先,当我输入'from pyqt4 import qtcore'(或者类似的内容,我现在不看命令)时,它返回'ImportError:没有名为“pyqt4”的模块'。所以我想我可以尝试在designer中创建一个表单,并使用pyuic进行转换。不。显然,“pyuic不是可识别的命令或文件”。看起来我做错了什么,但我已经多次重新安装了Python和PyQt,并且花了数小时搜索web。发生了什么事

PS,没有“bin”文件夹,我也看了那个问题


请注意,我正在Windows 7计算机上运行Python 3.3.3。

在Windows上,Python软件包安装到Python的Lib\site软件包安装目录中(例如C:\Python33\Lib\site软件包\PyQt4)。脚本安装到“Scripts”目录(例如C:\Python33\Scripts)。安装程序还应该在“开始”菜单中创建Qt Designer的快捷方式

即使在Windows上,导入也区分大小写:

from PyQt4 import QtCore
对于
pyuic
命令,包目录中有一个名为pyuic4.bat的批处理文件。就我个人而言,我会跳过这一步。实际脚本是PyQt4\uic\pyuic.py。我会使用Windows shortcut2,或者使用使用cmd或Python创建的NTFS symlink3。您也可以只复制脚本,但如果原始脚本得到更新,则会出现问题


1.批处理文件的
Ctrl-C
处理程序是一个恼人的提示,它只与实际的批处理相关。

2.要像普通命令一样使用快捷方式,只需将
.LNK
文件扩展名添加到
PATHEXT
环境变量。以下是在Python中创建简单快捷方式的方法(需要PyWin32):

3.创建符号链接需要NT 6.0+和
secreateSymbolicClinkPrivilege
。检查
whoami/priv
以查看您的帐户是否具有该权限。Administrators组中的帐户具有此权限,但如果启用了UAC,则需要提升访问令牌。可以向普通用户授予此权限。

我花了几个小时试图解决一个根本不存在的问题,这让我非常开心。谢谢
import win32com.client
ws = win32com.client.Dispatch('wscript.shell')
shortcut = ws.CreateShortcut('SHORTCUT_NAME.lnk')
shortcut.TargetPath = r'"PATH\TO\TARGET"'
shortcut.Save()