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

Python程序中通过os.system调用脚本:PC正常运行笔记本仅开代码问题求助

解决os.system运行Python脚本在笔记本仅打开代码窗口的问题

我之前也碰到过一模一样的问题!这大概率是你的笔记本电脑把.py文件的默认打开方式设成了代码编辑器(比如VS Code、Notepad++之类的),而不是Python解释器,导致os.system调用时只是打开了代码窗口,没真正运行脚本。给你几个靠谱的解决方案:

方案一:直接指定Python解释器执行(最稳妥)

放弃依赖系统的文件关联,直接调用Python解释器来运行脚本,这样不管系统关联是什么都能正常执行:

import os
# 基础写法,根据你的Python版本用python或python3
os.system("python theName.py")
# 或者用python3
# os.system("python3 theName.py")

如果不确定当前环境的Python路径,用sys.executable获取当前脚本使用的Python解释器路径,兼容性拉满:

import os
import sys
# 用当前程序的Python解释器运行目标脚本
os.system(f"{sys.executable} theName.py")

方案二:修复系统的.py文件关联(Windows系统)

如果想彻底解决文件关联的问题,以后直接运行.py文件也能执行,可以这么做:

  • 右键点击任意.py文件,选择「打开方式」→「选择其他应用」
  • 勾选「始终使用此应用打开.py文件」
  • 找到你的Python安装目录下的python.exe(一般在C:\Users\你的用户名\AppData\Local\Programs\Python\PythonXX路径里),选中它并确认
  • 之后再运行os.system("theName.py")就会正常执行脚本了

方案三:改用subprocess模块(更推荐的现代写法)

os.system其实是比较老旧的API,Python官方更推荐用subprocess模块,它功能更强大,还能轻松实现异步线程式执行:

import subprocess
import sys
# 异步运行目标脚本,不阻塞当前程序
process = subprocess.Popen([sys.executable, "theName.py"])
# 如果需要等待脚本执行完再继续,用run方法
# subprocess.run([sys.executable, "theName.py"], check=True)

subprocess.Popen会直接启动一个新进程运行脚本,完全符合你线程方式执行的需求,还能避免文件关联带来的问题。

另外补充一点:如果你的笔记本上Python没添加到系统PATH,直接打python可能会报错,这时候用sys.executable就完美解决了,因为它指向的是当前正在运行的这个Python解释器的路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:40:01