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

Mac环境下如何在主Python文件中运行另一个Python文件?解决权限拒绝异常

解决Mac上Python调用另一个脚本时的权限拒绝问题

一、修复当前os.system调用的权限问题

你用os.system('/Users/valiev/code/python/telegram_bot_parser/parser.py')触发权限拒绝,主要有两种解决方式:

  • 给脚本添加执行权限
    打开终端执行以下命令,给目标脚本赋予可执行权限:
    chmod +x /Users/valiev/code/python/telegram_bot_parser/parser.py
    
    同时要确保parser.py的第一行添加shebang声明,指定Python解释器:
    #!/usr/bin/env python3
    
  • 直接用Python解释器调用脚本
    无需修改权限,直接在os.system里指定Python解释器运行脚本:
    os.system('python3 /Users/valiev/code/python/telegram_bot_parser/parser.py')
    

二、更优的Python内部调用方案

os.system是比较老旧的调用方式,推荐用以下两种更灵活的方案:

1. 导入模块调用函数

如果parser.py的执行逻辑可以封装成函数,先修改parser.py:

def main():
    # 这里写原来的脚本执行逻辑
    pass

if __name__ == '__main__':
    main()

然后在主文件中导入并调用:

# 先把脚本所在目录加入Python搜索路径
import sys
sys.path.append('/Users/valiev/code/python/telegram_bot_parser')
import parser

# 在callback函数里替换原os.system代码
parser.main()

2. 使用subprocess模块

subprocess能更精准地控制脚本执行,还能捕获输出、错误信息:

import subprocess

# 在callback函数中替换原代码
subprocess.run(['python3', '/Users/valiev/code/python/telegram_bot_parser/parser.py'])

如果需要检查脚本是否执行成功,添加check=True参数;要捕获输出则加上capture_output=True。

内容的提问来源于stack exchange,提问作者Александр Валиев

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 17:45:29