[英]Using virtualenv with sublime text 2
我使用sublime text 2進行python開發以及virtualenv!
標准的sublime text 2構建系統使用標准的python安裝而不是我的virtualenv安裝我的軟件包。
如何使用我的virtualenv獲得崇高的文本2?
我目前使用終端來激活我的環境並運行我的腳本。
更新:從來沒有讓它工作,但看到我正在使用燒瓶,它建立當你做出改變,這不是一個大問題
您還可以將構建系統的路徑設置為virtualenv的bin
目錄,如下所示:
"build_systems":
[
{
"selector": "source.python",
"env": {"PYTHONPATH":"/Users/user/project"},
"path":"/Users/user/work/myvirtualenv/bin:$PATH",
"name": "Run virtualenv python",
"cmd": ["python", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"variants": [
{ "name": "Run all Tests",
"working_dir": "/Users/user/project",
"cmd": ["nosetests"]
}
]
}
]
這也允許其他工具(例如示例中的nose
從virtualenv中找到正確的python二進制文件。
在Windows中這對我有用:
"build_systems":
[
{
"name": "Run Tests",
"working_dir": "/path/to/to/your/django_project",
"cmd": ["/path/to/your/virtualenv/bin/python.exe", "manage.py", "test"]
}
]
Sublime的Build System支持可與Sublime項目文件一起使用的變量,使其在項目中更具可移植性。
如果您的虛擬環境位於標准位置,請在虛擬環境目錄上方的項目根目錄中創建一個新項目文件(項目 - >將項目另存為)。 然后使用以下內容創建一個新的構建文件:
{
"cmd": ["$project_path/venv/bin/python", "-u", "$file"]
}
它似乎然后自動獲取其余部分 - 就像從命令行鍵入./venv/bin/python一樣 - 不需要弄亂路徑,環境變量等。
我正在使用Flask,但我認為它幾乎適用於所有情況。
我的實際構建是這樣的,其中“benicio”是我的項目的目錄:
{
"cmd": ["source ~/projs/benicio/venv/bin/activate && python ~/projs/benicio/benicio_tests.py"],
"shell": true
}
很抱歉再添加一個答案 - 但這讓我感到非常悲痛。
您不僅需要構建如下構建系統:
"build_systems":
[
{
"name": "Maths",
"env": {"PYTHONPATH":"/home/nebffa/Desktop"},
"path":"$project_path/bin",
"cmd": ["$project_path/bin/python3.3", "-u", "$file"]
}
]
但您必須更改Sublime Text中的設置 - 轉到工具 - >構建系統 - >“數學”。 在我的情況下,我需要選擇“數學”,因為這就是我命名我的構建系統。 如果你不這樣做 - Sublime Text不使用你的構建系統!!
我剛剛在virtualenv中使用了崇高的文本3。 盡管OP指定了ST2,但我可能更喜歡使用ST3。 感謝user1248490和Russell Beattie,我得到了以下信息:
{
"shell_cmd": "$project_path/vi_sys_pkgs/bin/python3 -u \"$file\"",
"path": "$project_path/vi_sys_pkgs/bin",
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
請注意,“cmd”現在是ST3中的“shell_cmd”。 見ST3博客
在MAC OSX下,這對我有用
{
"cmd": ["/your/virtualenv/bin/python", "-u", "$file"]
}
我做的是保持簡單:
去root驅動器並創建了python文件夾:
sudo mkdir python
然后去那里創造了virtualenv
virtualenv --no-site-packages virtualenvname
然后使用上面的命令在ST2中創建了一個newbuild並且它可以工作
這就是我作為構建系統所擁有的(假設我的virtualenv被創建為當前項目目錄中名為'env'的文件夾)。 這至少意味着我不需要在項目之間不斷更改構建系統:
{
"cmd": ["env/bin/python", "-u", "$file"]
}
我將其保存為新的構建系統(工具 - >構建系統 - >新構建系統)。
我用它來構建我的Flask項目。 我已將以下代碼添加到我的項目設置:項目 - >編輯項目
{
"folders":
[
{
"path": "/C/MyDev/chilinzb/"
}
],
"build_systems":
[
{
"name": "Flask",
// activate the specific virtualenv for the project
"cmd": ["C:/MyDev/virtualenvs/env_chilinzb/Scripts/python", "$file"]
}
]
}
然后我切換到我的run.py
文件並按Ctrl+B
這種組合效果很好:2個步驟
1)將2個適當的鍵添加到'env'鍵。 A)DJANGO_SETTINGS_MODULE B)PYTHONPATH
2)更新cmd以反映您要使用的python版本。
{
"env":{"DJANGO_SETTINGS_MODULE":"my_project.settings",
"PYTHONPATH":"d:\\Projects\\virts\\my_project\\Scripts;d:\\Projects\\virts\\my_project\\Lib;d:\\Projects\\virts\\my_project\\Lib\\site-packages;D:\\Projects\\my_project"
},
"cmd": ["c:/Python27/python.exe","$file"]
}
我有一個使用Heroku並使用他們的工頭工具的人的答案,它很有效。 只需創建一個新的構建系統,如下所示:
{
"cmd": ["foreman", "run", "python", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
這里提供了Foreman可用的所有環境變量, 包括你的virtualenv的$ PATH變量,它將virtualenv Python添加到你的python路徑中。
在lubuntu的構建中,源代碼對我沒有用。 采用 '。' 或點而不是'來源'。
這確實有效:
{
"env": {
"DJANGO_SETTINGS_MODULE":"django_project_name.settings",
"PYTHONPATH":"/home/my_username/current/django_project_name:/home/my_username/.virtualenvs/django_project_name/lib/python2.7:/home/my_username/.virtualenvs/django_project_name/lib/python2.7/site-packages/"
},
"working_dir":"$project_path",
"cmd":[". /home/my_username/.virtualenvs/django_project_name/bin/activate && python $file"],
"shell":true
}
這對我有用:
{
"cmd": ["C:/Users/user/virtualenvs/env1/Scripts/python.exe", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
保存內置:
"C:\\Users\\user\\AppData\\Roaming\\Sublime Text 2\\Packages\\User\\"
如
"Python_env1.sublime-build"
選擇
Tools> Build System> Python_env1
完成了!
使用Windows 8.1,st2
假設您將項目特定的virtualenv保存在項目頂層的.env文件夾中。
項目>編輯項目:
{ "folders":[ { "path": ".", "folder_exclude_patterns": [".env"], } ], "build_systems":[ { "name": "Run in VirtualEnv", "shell_cmd": "source $project_path/.env/bin/activate && python -u $file" } ] }
工具>構建系統>在VirtualEnv中運行
請注意,這是使用Sublime Text 3測試的。
請注意有關此解決方案的評論不正確
您必須編輯您的sublime-project文件並添加以下內容:
"build_systems":
[
{
"name": "Run Tests",
"cmd": ["source", "/path/to/your/virtualenv/bin/activate"],
"working_dir": "/path/to/to/you/django_project",
"cmd": ["python", "manage.py", "test"]
}
]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.