python - C :/Program is not recognized . ..与 pyuic5 相关

标签 python python-3.x pyqt anaconda pyuic

我在 Windows 10 专业版上安装了 Anaconda3-4.2.0。在安装过程中,我选择了 Anaconda 来设置 Path 变量。我使用 QT Designer 创建了一个小程序并将其保存为 hello.ui。我启动了 Windows 命令提示符并将目录更改为保存 hello.ui 的位置。然后我在提示符处输入以下内容:

C:\Users\HA\Documents\Python_Scripts\GUI_Scripts> pyuic5 -x hello.ui -o hello.py

它给了我以下错误:

'C:/Program' is not recognized as an internal or external command, operable program or batch file.

如何解决这个问题?我的目标是从 .ui 文件创建一个 .py 文件。我可以尝试其他选择吗?

我尝试了以下操作:我在 Google 和 stackoverflow ( 'C:\Program' is not recognized error ) 上搜索了此错误,并且在路径变量周围包含引号的建议对我不起作用。还有另一个建议是重新安装 Visual C++ Redistributable for Visual Studio 2015(不确定为什么这会有所帮助,但尽管如此,我尝试了),但这也没有帮助。

以下是有关我的设置的一些相关信息。 Anaconda3、pyuic5.bat和pyuic.py分别安装在以下目录中:

C:\Program Files

C:\Program Files\Anaconda3\Library\bin

C:\Program Files\Anaconda3\Lib\site-packages\PyQt5\uic

系统变量下的Path变量包括以下与Anaconda3相关的项目:

C:\Program Files\Anaconda3;C:\Program Files\Anaconda3\Scripts;C:\Program Files\Anaconda3\Library\bin

python.exe 安装在 C:\Program Files\Anaconda3 中。但是,我可以毫无问题地运行以下命令:

C:\Users\HA\Documents\Python_Scripts\GUI_Scripts> python

'>>>

我还能尝试什么?我还应该在此处包含哪些其他信息来帮助回答?

编辑:

我卸载了Anaconda3并重新安装了它,但是在重新安装过程中,我选择了C:\Anaconda3作为安装目录。之后我就可以运行:

pyuic5 -x hello.ui -o hello.py

成功生成了hello.py。这清楚地表明问题出在 C:\Program Files 中的空间。但是,为什么之前我可以从 Windows 命令行在任何目录中运行 python.exe,而 C:\Program Files 中的空间不是问题呢?为什么只影响pyuic5?希望有人可以为可能面临此问题的其他人提供更多线索。大多数安装Anaconda3的人可能会选择Program Files下的默认安装目录,他们也会面临类似的问题。但是,对于那些根本不关心哪个目录的人,我建议将 Anaconda3 安装在某个合理的目录中,但确保该目录的路径中没有空格。

最佳答案

问题出在pyuic5批处理文件中:

Windows 首先调用批处理文件,在这种情况下,.bat 中的 pyuic.py 脚本的路径没有用引号引起来。 如果路径没有用引号引起来,Windows 将在空格处停止读取。

这就是当您将 Anaconda 重新安装到没有空格的文件夹中时问题消失的原因。

所以,一个简单的修复即可!使用记事本打开位于以下位置的 pyuic5.bat 文件:

C:\...\Anaconda3\Library\bin\pyuic5.bat

并用引号括住路径:

@"C:/.../Anaconda3\python.exe" -m PyQt5.uic.pyuic %1 %2 %3 %4 %5 %6 %7 %8 %9

现在命令可以工作了:

pyuic5 -x hello.ui -o hello.py

关于python - C :/Program is not recognized . ..与 pyuic5 相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40446572/

相关文章:

python - 将字符串列表从 Python 传递给 Rust

python - 如何在 Python 函数返回 boolean 值中使用 try-except?

python - 关于 Python Pandas,删除该行

python - 可从 Pandas 数据框迭代

python - PyQt5 线程 GUI 不工作

python - 在 python 中使用正则表达式查找字符串

python-3.x - 无法为 python 安装此 manim 库

Python,为什么这个 lambda 函数不正确?

python - 带图标的 QSlider

python - 如何设置 QTableView CSS 样式