如何在Python脚本中从另一个Python安装中获取值?

2024-05-14 22:02:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个不同的Python安装(一个在chrooted监狱里,一个在外面,它们有不同的版本)。在运行其中一个Python脚本时,我需要调用“otherpython”并获取一些内部值(搜索路径). 你知道吗

我可以用这样的东西

subprocess.call("<the other python> -c 'import sys; print sys.path'", shell=True)

把它重定向到一个文件,从那里读取,等等。但是像这样通过IO似乎很复杂。你知道吗

有简单直接的方法吗?你知道吗

(基本上,我需要附加系统路径从一条Python到另一条Python搜索路径). 你知道吗


Tags: thepathimport路径版本脚本sysshell
1条回答
网友
1楼 · 发布于 2024-05-14 22:02:58

简单的回答是不,没有其他更直接的方法了。您正试图从另一个进程捕获运行时细节,因此需要某种进程间通信。我能想到的不运行另一个解释器就获得这些信息的唯一方法是对配置文件和环境/shell变量进行一些非常复杂的解析,如果您使用的是Windows,还可能潜入注册表。你知道吗

我认为你最好只写一行(虽然很长):

from subprocess import Popen, PIPE

other_path = Popen("<other interpreter path> -c 'import sys; print sys.path'", 
                    stdout=PIPE, shell=True).communicate()[0]

至少使用这种方法,您不会向磁盘写入任何内容,因此您绕过了最慢的IO方法之一。你知道吗

相关问题 更多 >

    热门问题