使用subprocess时明明已导入却还报ModuleNotFoundError?

问题描述

在做前端登录成功后使用subprocess.run跳转运行另一python文件时,总是报错:ModuleNotFoundError: No module named xxx,可是直接运行该python文件时运行正常。其中关键代码如下:

subprocess.run(['python', 'run.py'], check=True)

问题解决

这是在使用subprocess.run时,它可能无法访问相同的环境或Python路径,这会导致ModuleNotFoundError。解决代码如下:

env = os.environ.copy()
env['PYTHONPATH'] = os.path.dirname(os.path.abspath('D:/project/.venv/scripts/python.exe')) 
# 注意,上述路径填写解释器所在虚拟环境,以自己实际为准
python_executable = sys.executable 
result = subprocess.Popen([python_executable, 'run.py'], env=env)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值