Python sys.path 注意事項
Python sys.path 注意事項
問題描述
學藝不精,被這個問題折磨了快一個小時才發現問題的根源。有個chromedriver.exe
檔案需要放到Path
裡面去,但是用下面這個程式碼跑了半天都不行
import sys
import os
sys.path.append(os.path.dirname(os.getcwd()))
os.system("...") # 操作:啟動放著這個目錄下的某個可執行檔案
各種嘗試,都是失敗,直接在我的電腦裡面新增path是可行的,用上述方法設定我自定義的settings
配置檔案路徑也是可行的,然而就是上面的這串程式碼不行。
問題解決
直接找了官方文件,發現這麼一句話:
A list of strings that specifies the search path for modules. Initialized from the environment variable
PYTHONPATH
, plus an installation-dependent default.As initialized upon program startup, the first item of this list,
path[0]
, is the directory containing the script that was used to invoke the Python interpreter. If the script directory is not available (e.g. if the interpreter is invoked interactively or if the script is read from standard input),path[0]
is the empty string, which directs Python to search modules in the current directory first. Notice that the script directory is inserted before the entries inserted as a result ofPYTHONPATH
.
加粗的字型modules
,也就是說,sys.path
只在程式搜尋modules
的時候起作用,是方便個人模組的匯入而設計的,不是和直接設定環境變數一個作用,所以我上面的程式碼無法讓程式自動找到我需要的可執行檔案。所以,對於我這個問題,要麼寫到環境變數裡寫好,要麼老老實實用相對路徑或者絕對路徑。