[英]Define virtualenv and linter executables relative to sublime-project in sublime text 3
我試圖弄清楚使用sublime text 3和python虛擬環境的最佳設置是什么。
我使用的是Virtualenv軟件包,我的典型項目結構包括一個根目錄,該目錄包含一個始終稱為venv的虛擬環境,位於我項目的根文件夾中。 為了訪問virtualenv,我必須在sublime-project文件中的每個項目基礎上指定venv的位置,並設置virtualenv條目。 我還必須指定我正在使用的所有linter的絕對路徑。
沒什么大不了的,但是每次我在一個新的小項目中玩耍時,設置這些條目肯定很繁瑣。
我希望會有一個平滑的解決方案,其中Virtualenv軟件包會自動檢測最近的venv和linter可執行文件。
類似於默認的sublime-project文件,它將為所有常用路徑獲取相對值。
我試着擺弄,但沒有設法得到一些東西,但硬編碼的路徑起作用。
我覺得這是一個普遍的問題,所以我認為必須有一個簡單的解決方案。
我設法自己解決了問題,以防萬一有人感興趣,這就是我最終要做的事情:
首先,顯然我不是唯一一個遇到此問題的人( 這里 , 這里 , 這里和這里似乎都存在類似的問題),但是我花了很多時間才終於找到一個對我有用的簡單答案。
重申一下,我的問題是為我擁有的每個小項目找到一種繞開到虛擬環境和linter可執行文件的硬連線的簡便方法,而無需進行任何全局安裝。
${variable_name}
語法調用SublimeTexts expand_variables API來訪問預定義變量以及所有環境變量。 但是,文檔未說明 -顯然阻止了許多其他人實際解決其問題的原因-變量擴展在SublimeLinter.paths屬性中不起作用 ,因為該線程中的 kaste指出了這一點 。 因此,變量擴展確實可以工作,它只需要直接針對linter可執行文件即可。 就我而言,我使用的是pythons pyflake和pycodestyle,而SublimeLinter用戶設置現在看起來像這樣 // SublimeLinter Settings - User
{
***
// Provide extra paths to be searched when locating system executables.
"paths": {
"linux": [],
"osx": [],
"windows": [],
},
"linters": {
"pycodestyle": {
"executable": "${project_path}\\venv\\Scripts\\pycodestyle.exe",
},
"pyflakes": {
"executable": "${project_path}\\venv\\Scripts\\pyflakes.exe",
}
},
}
我在其中訪問project_path變量以從那里創建可執行文件的完整路徑。 這僅要求我遵循一致的約定,即命名虛擬環境venv ,並將其與sublime-project文件放置在同一目錄中,並將可能直接使用的所有Lint安裝到項目虛擬環境中。
此設置的優點之一是,它同時適用於python2和python3,並且可以根據venv所使用的版本正確編碼代碼,而無需進行任何其他設置。
許多文本需要進行這樣的微調,但是也許其他一些崇高的人可能會覺得有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.