gpt4 book ai didi

python - Linux、Python打开终端运行全局python命令

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:17:45 25 4
gpt4 key购买 nike

不确定这是否可能。我有一组 python 脚本,并修改了 ~/.bashrc 中的 linux PATH,这样每当我打开终端时,python 脚本就可以作为命令运行。

export PATH=$PATH:/home/user/pythonlib/

my_command.py 位于上述路径中。

我可以在终端的任何地方运行 my_command.py (args),它会运行 python 脚本。

我想从不同的 python 脚本控制此功能,因为这将是自动化我的处理例程的最快解决方案。所以我需要它来打开一个终端并从我正在处理的 python 脚本中运行 my_command.py (args)。

我试过子流程:

import subprocess
test = subprocess.Popen(["my_command.py"], stdout=subprocess.PIPE)
output = test.communicate()[0]

虽然 my_command.py 通常在我启动的任何终端中可用,但在这里我无法访问它,返回文件未找到。

我可以使用 os 启动一个新终端,然后输入 my_command.py,它就可以工作了

os.system("x-terminal-emulator -e /bin/bash")

那么,有没有办法让第二种方法接受你想用 args 从 python 运行的脚本?

Ubuntu 16

谢谢:)

最佳答案

Popen 不会为您在 python 脚本中创建的 session 加载系统路径。您必须修改 session 中的 PATH 以将目录包含到您的项目中,如下所示:

someterminalcommand = "my_command.py (args)"

my_env = os.environ.copy()
my_env["PATH"] = "/home/usr/mypythonlib/:" + my_env["PATH"]

combine = subprocess.Popen(shlex.split(someterminalcommand), env=my_env)

combine.wait()

这允许我从不同的 python session 运行我的“my_command.py”文件,就像我打开了一个终端窗口一样。

关于python - Linux、Python打开终端运行全局python命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48372449/

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