有没有一种方法可以启动Anaconda Python,使其不修改os.environ [“ PATH”]

时间:2018-08-31 08:50:49

标签: python dll path subprocess anaconda

问题

在Windows命令行上,我的PATH开头为:

C:\Program Files (x86)\IntelSWTools>set PATH
Path=C:\Program Files (x86)\IntelSWTools\<...and so on>

在一个新的Anaconda Python中(从同一命令行开始),我得到:

>>> import os
>>> os.environ["PATH"][:60]
'C:\\Program Files\\Anaconda2\\Library\\bin;C:\\Program Files (x86'

有没有一种方法可以启动Anaconda python,以便它不会在PATH开始时注入自己的库?

背景和动机

我有一个python 2.7代码,其中使用subprocess.call()运行二进制可执行文件。长期以来,这在多台计算机(Windows和Linux)上都可以正常工作。但是,在特定的Windows服务器上,我遇到一个问题:subprocess.call()命令失败,退出状态为非零-1073741512。

经过一番挖掘,我发现发生这种情况是因为二进制可执行文件需要新版本的libiomp5md.dll,而Anaconda发行版具有旧版本。通常,可以通过确保正确的libiomp5md.dll出现在PATH变量的开头来解决此问题。但是,由于Anaconda的python解释器在启动时会修改PATH变量,因此当可执行文件通过子进程运行时,会使用错误的版本。

由于各种原因,我无法轻松升级Anaconda发行版或降级二进制可执行文件。另外,我希望我不需要使用特定于问题服务器的“ PATH”操作来使python代码混乱。

0 个答案:

没有答案