web-dev-qa-db-ja.com

崇高なテキスト2でvirtualenvを使用する

私はpython開発にvirtualenvと共に崇高なテキスト2を使用しています!

標準の崇高なテキスト2ビルドシステムでは、パッケージがインストールされているvirtualenvではなく、標準のpython installを使用します。

Virtualenvを使用して崇高なテキスト2をビルドするにはどうすればよいですか?

現在、ターミナルを使用して環境をアクティブ化し、スクリプトを実行しています。

更新:機能していませんが、flaskを使用しているため、変更を加えたときにビルドされるため、大きな問題ではありません。

26
Rigobert Song

次のように、ビルドシステムのパスを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バイナリを見つけることができます。

15
user1248490

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"]
    }
]
13
mak

Sublimeのビルドシステムは、Sublimeプロジェクトファイルで使用できる変数をサポートしており、これをプロジェクト間で移植性を高めます。

仮想環境が標準の場所にある場合は、仮想環境ディレクトリのすぐ上にあるプロジェクトのルートディレクトリに、新しいプロジェクトファイル(プロジェクト->名前を付けてプロジェクトを保存)を作成します。次に、次のような新しいビルドファイルを作成します。

{

    "cmd": ["$project_path/venv/bin/python", "-u", "$file"]

}

その後、残りを自動的にピックアップするようです-コマンドラインから./venv/bin/pythonを入力した場合と同じです-パスや環境変数などをいじる必要はありません.

12
Russell Beattie

私はFlaskを使用していますが、ほぼすべてのケースに当てはまると思います。
実際のビルドは次のようになります。「benicio」は私のプロジェクトのディレクトリです。

{
    "cmd": ["source ~/projs/benicio/venv/bin/activate && python ~/projs/benicio/benicio_tests.py"],
    "Shell": true
}
3
Dirtycoder

これにさらに別の答えを追加して申し訳ありません-しかし、これは私にこれを理解する大量の悲しみを引き起こしました。

次のようなビルドシステムを作成する必要があるだけではありません。

"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はビルドシステムを使用しません!!

3
nebffa

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"
}

ST3では、「cmd」が「Shell_cmd」になりました。 ST3ブログ を参照してください

2
Randy Skretka

これは私がビルドシステムとして持っているものです(私のvirtualenvが現在のプロジェクトディレクトリに 'env'というフォルダーとして作成されていると仮定しています)。これは少なくとも、プロジェクト間でビルドシステムを常に変更する必要がないことを意味します。

{
   "cmd": ["env/bin/python", "-u", "$file"]
}

これを新しいビルドシステムとして保存しました([ツール]-> [ビルドシステム]-> [新しいビルドシステム])。

1
HHHH

MAC OSXでは、これは私のために働きます

{
"cmd": ["/your/virtualenv/bin/python", "-u", "$file"]
}

私がやったことはそれをシンプルに保つことでした:

ルートドライブに行き、pythonフォルダを作成しました:

Sudo mkdir python

それからそこに入り、virtualenvを作成しました

virtualenv --no-site-packages virtualenvname

次に、上記のコマンドを使用してST2に新しいビルドを作成し、それが機能します

1
sojim

Herokuを使用し、フォアマンツールを使用するすべての人に答えがあります。次のように新しいビルドシステムを作成するだけです。

{
    "cmd": ["foreman", "run", "python", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

これにより、Foremanで使用可能なすべての環境変数が取り込まれますinclude virtualenvの$ PATH変数。virtualenvPythonがpythonパスに追加されます。

0
Dan Gayle

プロジェクト固有のvirtualenvをプロジェクトの最上位レベルの.env-folderに保持するとします。

  1. Sublime> Project> Save project as ...(まだ行っていない場合。これにより、プロジェクトのカスタムビルドオプションを設定できるようになります。
  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でテストされていることに注意してください。

0
Filipp Lepalaan

これを使用して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

0
happygoat

ソースは、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

}

0
davidj411

これは私のために働きました:

{
    "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の使用

0
jes516

この組み合わせはうまくいきました:2ステップ

1)2つの適切なキーを「env」キーに追加します。 A)Django_SETTINGS_MODULE B)PYTHONPATH

2)使用するpythonのバージョンを反映するようにcmdを更新します。

{

"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"]
}
0
davidj411