Pyinstaller无法识别为内部或外部命令

use*_*214 5 python pyinstaller

我试图pyinstaller在cmd中使用,但收到错误消息:

C:\Users\username>pyinstaller
'pyinstaller' is not recognized as an internal or external command,
operable program or batch file.

C:\Users\username>
Run Code Online (Sandbox Code Playgroud)

当我在python 的Scripts文件夹中使用此命令时,它可以正常工作:

C:\Users\username\AppData\Local\Programs\Python\Python36-32\Scripts>pyinstaller
usage: pyinstaller [-h] [-v] [-D] [-F] [--specpath DIR] [-n NAME]
                   [--add-data <SRC;DEST or SRC:DEST>]
                   [--add-binary <SRC;DEST or SRC:DEST>] [-p DIR]
                   [--hidden-import MODULENAME]
                   [--additional-hooks-dir HOOKSPATH]
                   [--runtime-hook RUNTIME_HOOKS] [--exclude-module EXCLUDES]
                   [--key KEY] [-d] [-s] [--noupx] [-c] [-w]
                   [-i <FILE.ico or FILE.exe,ID or FILE.icns>]
                   [--version-file FILE] [-m <FILE or XML>] [-r RESOURCE]
                   [--uac-admin] [--uac-uiaccess] [--win-private-assemblies]
                   [--win-no-prefer-redirects]
                   [--osx-bundle-identifier BUNDLE_IDENTIFIER]
                   [--distpath DIR] [--workpath WORKPATH] [-y]
                   [--upx-dir UPX_DIR] [-a] [--clean] [--log-level LEVEL]
                   [--upx UPX]
                   scriptname [scriptname ...]
pyinstaller: error: the following arguments are required: scriptname

C:\Users\username\AppData\Local\Programs\Python\Python36-32\Scripts>
Run Code Online (Sandbox Code Playgroud)

如何解决呢?

PJ3*_*PJ3 48

我确实正确配置了我的脚本路径,我必须运行python -m PyInstaller script.py才能使其工作

对于每个脚本我都必须遵循这个模式,python -m [script name] [args]

蟒蛇版本3.10.0

  • 啊啊啊,区分大小写…… (3认同)

小智 10

首先,您需要知道 pyinstaller 位于哪里。就我而言,我跑了

pip uninstall pyinstaller
Run Code Online (Sandbox Code Playgroud)

在卸载之前,它会要求您确认是否要删除以下文件...

c:\users\USERNAME\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\scripts\pyinstaller.exe
Run Code Online (Sandbox Code Playgroud)

伟大的!现在通过这样做,您就知道了 pyinstaller 的路径。只需输入“否”并退出卸载,因为我们的目的只是获取路径。现在只需将此路径添加到 PATH 变量即可。

c:\users\USERNAME\appdata\local\packages\pythonsoftwarefoundation.python.3.9_qbz5n2kfra8p0\localcache\local-packages\python39\scripts\
Run Code Online (Sandbox Code Playgroud)

了解如何更改 PATH 变量。检查这里


use*_*632 9

你必须修改PATH ENVIRON包括C:\Users\username\AppData\Local\Programs\Python\Python36-32\Scripts> ,如果你不知道如何做到这一点看这里
好运气


Eli*_*Eli 9

对于 Python 3.7,您必须将 AppData/Roaming (%appdata%) 中的 Scripts 文件夹添加到 PATH 变量。

C:\Users\%USERNAME%\AppData\Roaming\Python\Python37\Scripts


小智 7

如果您使用的是 python 3.10 或更高版本,则 pyinstaller 可能不会添加到您的 Path 变量中。要避免所有这些设置,您只需运行

python -m PyInstaller [path to your file] [args]
Run Code Online (Sandbox Code Playgroud)

例如我跑了

python -m PyInstaller ./frontend.py --onefile
Run Code Online (Sandbox Code Playgroud)


Twi*_*Joe 6

该解决方案适用于 Python 3.9

首先找到pyinstaller.exe位置。为此,您可以尝试以下技巧:(不要按“y”,只需查看上面的内容,复制您要查找的路径)

pip uninstall pyinstaller
Run Code Online (Sandbox Code Playgroud)

在输入任何内容之前,它会显示 pyinstaller.exe 所在的路径。之后复制位置并在终端上运行此命令:(这是一个示例)

python C:\Users\[YOUR_USER_NAME]\AppData\...Scripts\pyinstaller.exe --onefile [your_script_name.py]
Run Code Online (Sandbox Code Playgroud)


小智 5

将“pyinstaller.exe”复制到您要转换的 .py 文件所在的文件夹中。完成后,只需删除“pyinstaller.exe”即可。祝你好运。