gpt4 book ai didi

python - 如何在 Python 中运行上下文感知命令?

转载 作者:太空宇宙 更新时间:2023-11-03 15:28:31 25 4
gpt4 key购买 nike

我想用 Python 编写一些 python 包安装脚本到 virtualenv 中。我写了一个安装 virtualenv 的函数

def prepareRadioenv():
if not os.path.exists('radioenv'):
print 'Create radioenv'
system('easy_install virtualenv')
system('virtualenv --no-site-package radioenv')
print 'Activate radioenv'
system('source radioenv/bin/activate')

我尝试使用“source radioenv/bin/activate”来激活虚拟环境,不幸的是,os.system 创建了一个执行命令的子进程。 activate 所做的环境更改随子进程一起消失,它不会影响 Python 进程。问题来了,如何在 Python 中执行一些上下文感知命令序列?

另一个例子:

system("cd foo")
system("./bar")

这里的 cd 不影响后面的 system(".bar")。如何让这些环境上下文存在于不同的命令中?

是否有上下文感知 shell 之类的东西?这样我就可以像这样编写一些 Python 代码:

shell = ShellContext()
shell.system("cd bar")
shell.system("./configure")
shell.system("make install")
if os.path.exists('bar'):
shell.system("remove")

谢谢。

最佳答案

要从 Python 中激活 virtualenv,请使用 activate_this.py 脚本(由 virtualenv 创建)和 execfile

activate_this = os.path.join("path/to/radioenv", "bin/activate_this.py")
execfile(activate_this, dict(__file__=activate_this))

关于python - 如何在 Python 中运行上下文感知命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3128452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com