我正在開發Windows上的python應用程序。但是,這個應用程序將被部署在Linux系統中。在開發過程中模擬目錄的存在
此應用程序將有一個配置文件在/etc/myapp/config
。這個路徑在Windows中是不可能的。
所以,我的問題是:
- 在Python中,有沒有什麼辦法來模擬,只是在發展過程中,有一定的目錄和文件(如
/etc/myapp/config
)的存在?
謝謝。
我正在開發Windows上的python應用程序。但是,這個應用程序將被部署在Linux系統中。在開發過程中模擬目錄的存在
此應用程序將有一個配置文件在/etc/myapp/config
。這個路徑在Windows中是不可能的。
所以,我的問題是:
/etc/myapp/config
)的存在?謝謝。
而不是試圖「模擬」一些不存在的路徑,只是避免在應用程序中硬編碼任何路徑,你會沒事的。
提示:環境變量和/或命令行參數是避免對環境相關值進行編碼的規範方法。您可以從os.environ
映射中讀取環境變量。這就是說,如果你的應用程序將被部署在一些Linux發行版上,你應該在同一個發行版上測試它,以確保沒有其他故障。這不是對你的配置路徑進行硬編碼的有效理由(即使是本地linux應用程序也不依賴於env變量和/或命令行參數),但是unix-like和windows之間還有其他不同之處......
而不是用/
與\
拼湊 - 只需使用os.path.join()。
(在https://docs.python.org/2/library/os.path.html
中閱讀os.path.join(path, *paths)
)。
然後,在你的代碼 - 使用:
os.path.join('', 'etc', 'myapp', 'config')
而且它會工作既爲C:\etc\myapp\config
(在Windows上)和/etc/myapp/config
(在* nix)。
不是問題的答案,但爲什麼不啓動流浪箱或碼頭集裝箱併爲自己節省麻煩? – AJPennster
我現在,但這是我現在的最後一個選擇 – Lobo
只需避免在應用程序中對任何路徑進行硬編碼,就會好起來的。提示:環境變量和/或命令行參數是規避方法來避免編碼依賴環境的值/ –