python - 在python中如何添加到windows路径变量以查找可执行文件

标签 python linux windows

我一直在寻找一种方法来使 python 在可能未在 Windows 路径中列出的文件夹中进行搜索。这样,如果他们决定不将其安装在 c:\program files 下,我可以考虑已安装应用程序的一些非标准位置。例如,如果 unix utils 安装在 d 驱动器或其他东西上。

而不是一直修改windows路径。我想我可以读取注册表找到它的安装路径,然后将其添加到该 python 实例的搜索路径中,并且仍然可以找到我正在寻找的内容。问题是我还需要考虑也具有标准命名的预定义子文件夹。

我已经搜索过,我发现的大部分内容都与修改 python 路径有关,并且 python 找到了它的模块,但这对此并没有多大用处。

我还有一些跨 sys.path.append 的内容,但无法真正找到任何关于这是否适用的信息。我还阅读了 os.path 的文档,看起来 join 可能有效,但它似乎并不真正适合这种需求。

是否有什么我没有到达这里或者这是不可能做到的。

最后一件事它需要跨平台兼容。我可以找到自己的路径并根据需要添加它们,但只需要一种添加到路径的方法。

谢谢

最佳答案

临时添加到路径中,例如:

    import os
    import sys

    if sys.platform == 'win32':
        sep = ';'
    else:
        sep = ':'

    os.environ['PATH'] += sep + r'"C:\QA\Hello World"'

Note that on Windows environment variables are not case sensitive, but on UNIX they are. This will only add the path for this process, and it's children.

When you come to run the program, you need to use a shell which will use %PATH% (or $PATH).

import subprocess
proc = subprocess.Popen('hello.exe',shell=True) 
proc.wait()

关于python - 在python中如何添加到windows路径变量以查找可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16177285/

相关文章:

jquery - 在 Ubuntu 14.04 上通过 npm 安装 jsdom 的问题

python - 如何在 mac os 上执行 python subprocess.check_output linux 命令

linux - 带有用户输入的 Bash If 语句

Windows:如何创建自定义 appcompat 垫片(应用程序修复)?

windows - 替换现有 Win32 .exe 中的 PE stub

python - llvmlite 安装失败。构建 llvmlite 时出错

python - Scipy 曲线拟合优化不适用于对数刻度值

python - 通过比较包含不同格式电话号码的两个数据帧列来过滤数据帧

Python 类定义语法

python - OpenCV:在 Python 中从 NumPy 转换为 IplImage