python-3.x - 当我尝试通过 python 脚本执行 shell 命令时,出现错误“找不到模块”
问题描述
执行以下语句时
out1 = subprocess.run("module load python",shell = True, stdout = subprocess.PIPE , stderr = subprocess.STDOUT)
生成此错误。
/bin/sh: 模块:找不到命令。
我想使用 python 脚本执行 shell 命令,但上面的语句不起作用,但是当我在 shell 上执行相同的语句时,它工作正常并且不会产生错误。
解决方案
module
不是外部命令,而是在使用的 shell/脚本语言中定义的函数。因此,要在 Python 脚本中启用该module
命令,您需要使用以下代码对其进行初始化:
import os
exec(open('/usr/share/Modules/init/python.py').read())
将/usr/share/Modules/init
,替换python.py
为您的机器上安装脚本(来自 environment-modules 软件)的位置。
初始化后,您可以module
从脚本中调用该函数:
module('load', 'modulefile')
推荐阅读
- linux - Dns.GetHostEntryAsync(host) 名称或服务未知(.Net Core - Docker)
- python - Pandas 自动将文本转换为#####
- python - 如何从python中的模板发送电子邮件?
- javascript - JS 使用视频帧作为画布背景
- swiftui - 添加 LazyVGrid 后预览崩溃
- reactjs - 如何在屏幕操作栏中从左侧删除应用程序名称反应原生
- php - 使用模型类型根据其表获取另一个表
- r - 使用 R API 在 C 中执行函数时出错
- c# - 在 CellEditEnding 事件中获取子控件的更新值
- vim - 不是编辑器命令:NERDTreeTabsToggle