【问题标题】:My PATH in my system is not matching the path in the "os" module我系统中的路径与“os”模块中的路径不匹配
【发布时间】:2020-04-18 08:07:48
【问题描述】:

我正在尝试从这样的 python 脚本启动 Chrome。

# Add Chrome to PATH
chromePATH = r'C:\Program Files (x86)\Google\Chrome\Application'
os.sys.path.append(chromePATH)

# Open chrome browser
os.system('chrome.exe -remote-debugging-port=9014 --user-data-dir="{}"'.format(profilePath))

当我运行它时,我得到:

'chrome.exe' 未被识别为内部或外部命令, 可运行的程序或批处理文件。'

我的猜测是,无论 PATH os.sys.path.append() 正在修改什么,都与 os.system() 中使用的 PATH 不同?如何确保我将 chrome 添加到正确的路径并且当我通过 os.system() 运行命令时它可以工作?

【问题讨论】:

    标签: python path operating-system


    【解决方案1】:

    对我来说这是可行的:

    将 Chrome 添加到 path variables

    subprocess一起运行

    import subprocess
    
    chrome_path = "chrome.exe --new-window"
    start_page = "https://google.com"
    
    command = 'cmd /c "%s %s"' % (chrome_path, start_page)
    process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
    

    【讨论】:

      【解决方案2】:

      尝试使用os.system

      os.system('setx path "%path%;C:\Program Files (x86)\Google\Chrome\Application"')
      

      【讨论】:

        【解决方案3】:

        os.system 生成一个子shell,它可能不会对您在python 进程中所做的系统路径进行更改。如果您知道可执行文件的完整路径,则应将其传递给调用

        os.system('C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe -remote-debugging-port=9014 --user-data-dir="{}"'.format(profilePath))
        

        【讨论】:

        • 这行得通,但是我需要在 chrome 的绝对路径周围添加引号,因为它有空格。此外,我最终使用 os.popen() 而不是 os.system()。不知道为什么,但它奏效了。
        猜你喜欢
        • 2017-02-23
        • 1970-01-01
        • 2013-07-16
        • 2016-03-23
        • 2023-04-04
        • 1970-01-01
        • 2019-12-17
        • 1970-01-01
        • 2020-11-05
        相关资源
        最近更新 更多