2013-04-23 82 views
0

我一直在尋找一種方法,使在可能無法在Windows路徑中列出的文件夾蟒蛇搜索。這樣,如果他們決定不將它安裝在c:\ program files下,我可以爲安裝的應用程序解釋一些非標準位置。例如,如果unix utils安裝在d驅動器或其他東西。在python如何添加到Windows路徑變量來查找可執行文件

而不是始終修改Windows路徑。我想我可以讀取註冊表找到它安裝的路徑,然後將其添加到該python實例的搜索路徑,仍然可以找到我要找的。問題是我還需要考慮預先定義的具有標準命名的子文件夾。

我已搜查,大部分是我找到的是與修改Python之路,併爲蟒蛇發現它模塊以及這是不是真的對這項有益的。

我也有一些跨sys.path.append但不能真正找到有關這是否會爲這個工作什麼。我還閱讀了os.path的文檔,它看起來像加入可能工作,但它似乎並不適合這種需要。

有沒有辦法,我只是不及彼,或者這是不可能做的。

最後一件事它必須是跨平臺兼容。我可以找到我自己的路徑並根據需要添加它們,但只需要添加到路徑中的一種方法。

感謝

+1

爲什麼不使用完整的分層文件名來調用程序,而不是將它添加到搜索路徑中? – cdarke 2013-04-23 19:13:23

+0

以及說明它並不總是在標準安裝路徑。所以在Windows中,我可以從註冊表中讀取安裝路徑,並將其添加到路徑中。我也可以以編程方式添加到Windows路徑中,但我認爲這不是最好的方法。另一件事是我有許多不同的命令行應用程序正在運行,並且簡單地添加到路徑而不是重新編碼所有內容會更容易。我想,作爲另一種方式,我可以簡單地找到路徑,並將其添加到每個命令之前,但仍然有記錄的東西。 – webmedic 2013-04-23 19:20:32

+0

你是什麼意思「在可能不在Windows路徑中列出的文件夾中進行python搜索」? Python不搜索Window PATH環境變量中的文件夾,它搜索的唯一東西是模塊。 Python在自己的'sys.path'中搜索模塊,其值受PYTHONHOME和PYTHONPATH環境變量(如果它們存在)的設置影響。 'sys.path'也可以在運行時更改。 – martineau 2013-04-23 19:24:09

回答

0

暫時補充的路徑,例如:

 
    import os 
    import sys 

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

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

需要注意的是在Windows環境變量不區分大小寫,但在UNIX上他們。這隻會爲此過程添加路徑,而且它是兒童。

當你運行程序,你需要使用將使用%PATH%(或$ PATH)的殼。

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

'os.pathsep'可以使用 – 2013-04-23 19:37:21

+0

@ hus787:Doh!你是對的。 – cdarke 2013-04-23 19:38:13

+0

是的,這或多或少是我想要的。這是否立即生效?我知道修改Windows路徑有時並不像預期的那樣。謝謝 – webmedic 2013-04-23 19:41:40

相關問題