You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Python Launcher运行已安装的Python脚本?

解决Python Launcher调用已安装脚本(如PyInstaller)的问题

嘿,我懂你现在的困扰——用py.exe指定Python版本跑脚本、调用pip都很顺畅,但就是没法直接用py -3.5 -m pyinstaller调用已安装的PyInstaller对吧?别着急,这里有几个实用的解决方法:

方法一:直接调用PyInstaller的子模块入口

这是最直接的方案,不需要额外操作。PyInstaller的执行入口其实藏在它的__main__子模块里,你只需要把命令改成:

py -3.5 -m pyinstaller.__main__ helloworld.py

比如要查看PyInstaller版本,就用:

py -3.5 -m pyinstaller.__main__ --version

这样就能通过Python Launcher直接调用对应版本的PyInstaller,完全不用记繁琐的安装路径。

方法二:用pip run命令(通用所有第三方脚本)

如果你觉得记子模块名麻烦,pip自带的run子命令可以帮你一键调用对应版本安装的脚本,不管它存在哪个路径:

py -3.5 -m pip run pyinstaller helloworld.py

这个命令会自动定位到Python 3.5对应的pip安装的PyInstaller脚本并执行,通用性拉满,适合各种第三方工具脚本。

方法三:自定义顶层模块(模拟标准-m调用)

如果你就想让py -3.5 -m pyinstaller这个命令完全生效,可以手动创建一个顶层模块文件:

  1. 找到Python 3.5的Lib/site-packages目录(比如你这里是C:\Python35\Lib\site-packages)
  2. 在里面新建一个名为pyinstaller.py的文件,内容如下:
from pyinstaller.__main__ import run
import sys

if __name__ == "__main__":
    run(sys.argv[1:])

之后你就能直接用py -3.5 -m pyinstaller来调用了,和你最初期望的用法完全一致。

为什么原来的命令不行?

简单来说,PyInstaller的模块结构没有把顶层的pyinstaller模块设置为可直接通过-m调用的入口,它的核心执行逻辑都放在了pyinstaller.__main__这个子模块里,所以直接用-m pyinstaller会提示找不到模块入口。上面的方法都是绕开这个结构限制的解决方案。

内容的提问来源于stack exchange,提问作者Peter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:08:39