簡體   English   中英

使用virtualenv和sublime文本2

[英]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文件夾中。

  1. Sublime> Project>將項目另存為...(如果還沒有。這將允許您為項目設置自定義構建選項
  2. 項目>編輯項目:

     { "folders":[ { "path": ".", "folder_exclude_patterns": [".env"], } ], "build_systems":[ { "name": "Run in VirtualEnv", "shell_cmd": "source $project_path/.env/bin/activate && python -u $file" } ] } 
  3. 工具>構建系統>在VirtualEnv中運行

  4. 工具>構建

請注意,這是使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM