代码之家  ›  专栏  ›  技术社区  ›  voilalex

运行影响父shell的Python脚本(更改环境变量、运行其他脚本等)

  •  0
  • voilalex  · 技术社区  · 2 年前

    最近,我需要影响从python脚本itseft运行python脚本的bash shell。我开发了一个 Python utility package pip . 此软件包中的一个工作流需要激活Virtualenv才能按计划工作。这就是问题所在。

    os.system('/bin/bash ./venv/bin/activate')
    

    或:

    subprocess.Popen(['/bin/bash', './venv/bin/activate')
    

    当脚本执行时,它不会对shell做任何事情。基本上是因为这些命令是在独立进程中执行的(我猜),因此不会影响bash进程本身。

    如何影响从脚本内部执行python脚本的父shell(添加一些环境、运行其他脚本等)?

    1 回复  |  直到 2 年前
        1
  •  1
  •   KamilCuk    2 年前

    如何影响从脚本内部执行python脚本的父shell(添加一些环境、运行其他脚本等)?

    venv 它是如何工作的 activate 脚本会将适当的目录添加到python模块搜索路径中。