栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

python子进程Popen环境PATH?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python子进程Popen环境PATH?

(填写评论的详细信息以做出单独的答案)

首先,无论您做什么,都不会在任何PATH中检查相对路径(包含斜杠的路径)。它们仅相对于 当前工作目录
。如果您需要解析相对路径,则必须手动搜索PATH,或者对PATH进行修改以使其包含子目录,然后按照下面的建议使用命令名即可。

如果要 相对于Python脚本的位置 运行程序,请使用

__file__
并从那里查找程序的绝对路径,然后使用中的绝对路径
Popen

其次,Python错误跟踪器中存在一个有关Python如何处理裸命令(无斜杠)的问题。基本上,在UNIX
/ Mac

Popen
使用
os.execvp
时调用
shell=False
,它看起来在其价值的手段
PATH
,因为它是在Python的推出
也没有改变的量
os.environ
会帮你解决这个问题。此外,在带有的Windows上
shell=False
,它根本不关注PATH,而只会相对于当前工作目录进行查找。

如果您只需要路径评估,而又不是真的想通过shell运行命令行,并且在UNIX上,建议您使用

env
代替
shell=True
,如中所述
Popen(['/usr/bin/env','progtorun', other, args],...)
。这使您可以将不同的PATH传递给
env
进程,该进程将使用它来查找程序。它还避免了外壳元字符的问题和通过外壳传递参数的潜在安全问题。显然,在Windows(几乎是唯一没有的平台
/usr/bin/env
)上,您将需要做一些不同的事情。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/638203.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号