为什么不';ipython环境变量是否与关联终端仿真器中的bash环境匹配?

为什么不';ipython环境变量是否与关联终端仿真器中的bash环境匹配?,python,command-line,ipython,ipython-notebook,sungridengine,Python,Command Line,Ipython,Ipython Notebook,Sungridengine,最近我一直在用Python做一些交互式工作 我的设置是一个IPython笔记本,运行在使用网格引擎管理作业的服务器上 今天,我试图让一个IPython集群按照一个使用subprocess.Popen启动集群的示例运行 我无法让示例正常工作,因此我尝试打开IPython/Jupyter终端仿真器并键入ipcluster start命令,集群立即启动 在玩了一会儿之后,我意识到如果我在终端模拟器中键入env,我得到的环境变量列表与在Python中查看os.environ变量时不同。问题的根源似乎是路

最近我一直在用Python做一些交互式工作

我的设置是一个IPython笔记本,运行在使用网格引擎管理作业的服务器上

今天,我试图让一个IPython集群按照一个使用
subprocess.Popen
启动集群的示例运行

我无法让示例正常工作,因此我尝试打开IPython/Jupyter终端仿真器并键入
ipcluster start
命令,集群立即启动

在玩了一会儿之后,我意识到如果我在终端模拟器中键入
env
,我得到的环境变量列表与在Python中查看
os.environ
变量时不同。问题的根源似乎是路径变量不同

现在我知道我可以在
os.environ
中更改
路径
变量,但我想知道为什么它在一开始是不同的?我对环境变量知之甚少,因此这可能是一个愚蠢的问题,但我会假设,在完全相同的IPython笔记本服务器的完全相同的节点上运行的终端仿真器和笔记本将具有完全相同的环境变量

任何关于终端和笔记本中的环境变量为何不同的见解都将受到极大的赞赏

更新:如果有问题,我正在使用的服务器将使用Univa网格引擎。我还注意到,使用
qrsh
qsub
启动笔记本服务器似乎会有所不同


以前我一直在使用
qsub
,但通过使用
qrsh
启动笔记本服务器,我消除了
env
os.environ
之间的许多差异。仍然存在差异,但要少得多。但是仍然不确定这其中的任何一项意味着什么:)

根据qsub、qsh、qrsh的手册页面,要将当前shell环境传播到作业,请使用
-V
选项:

 -V     Available for qsub, qsh, qrsh with command and qalter.

        Specifies that all environment variables active within the qsub utility be exported to the context of the job.

        All environment variables specified with -v, -V or the DISPLAY variable provided with -display will be exported to the defined JSV  instances  only  optionally  when  this  is
        requested explicitly during the job submission verification.  (see -jsv option above or find more information concerning JSV in jsv(1))

也许您从hpc集群的不同节点获得了结果?如果您执行以下操作,会发生什么情况?温度=%env os.environ==temp@valtuarte:
%env
的输出与
os.environ.copy()
的输出完全相同。另外,
HOSTNAME
环境变量在
os.environ
和我在终端仿真器中键入
env
时是相同的,因此我认为进程在同一个节点上。根据这一点,您的问题可能是在加载
os
模块后,
env
正在更改。此外,您是否使用-V选项运行qsub?如果没有,即使在同一节点上执行作业,
env
也不会传播到作业的环境中,因此也不会迁移到subprocess.Popen()。@Vince:我没有使用-V选项,使用它会使
env
os.environ
匹配(至少在我检查的范围内),所以非常感谢你的提示。你对这里发生的事情有很好的解释吗?我的直觉是,终端和IPython笔记本都是同一个作业(笔记本服务器)的一部分,因此我希望变量是相同的。这显然不是事实,因此任何关于为什么的直觉都将受到极大的赞赏。再次感谢。