私はsublime3でまったく新しいのですが、私の問題に役立つものを見つけることができませんでした...
Virtualenv(virtualenwrapperで作成)が異なるため、各プロジェクトで使用するvenvを指定できるようにしたい
SublimeREPLプラグインを使用してカスタムビルドを作成しているため、どのpythonインストールでプロジェクトをビルドするかを指定するにはどうすればよいですか?
たとえば、プロジェクトAで作業するときはvenvAのpythonでスクリプトを実行し、プロジェクトBで作業するときはvenvBで実行します(別のビルドスクリプトを使用)
すみません私のひどい英語...
うまくいけば、これはあなたが想像している線に沿っています。私は解決策を簡素化し、必要のないものを削除しようとしました。
この方法の利点は次のとおりです。
ご質問がある場合、または私があなたが何をしたいのかについてのマークを完全に逃した場合、私に知らせてください。
編集用にプロジェクトファイルを開きます。
Project -> Edit Project
目的のvirtualenvを指す新しいキーをプロジェクトの設定に追加します。
"settings": {
"python_interpreter": "/home/user/.virtualenvs/example/bin/python"
}
"python_interpreter"
プロジェクト設定キーは、 Anaconda などのプラグインでも使用されます。
Sublime TextのPackages
ディレクトリを参照します。
Preferences -> Browse Packages...
プラグイン用に新しいpythonファイルを作成します:project_venv_repls.py
次のpythonコードをこの新しいファイルにコピーします。
import sublime_plugin
class ProjectVenvReplCommand(sublime_plugin.TextCommand):
"""
Starts a SublimeREPL, attempting to use project's specified
python interpreter.
"""
def run(self, edit, open_file='$file'):
"""Called on project_venv_repl command"""
cmd_list = [self.get_project_interpreter(), '-i', '-u']
if open_file:
cmd_list.append(open_file)
self.repl_open(cmd_list=cmd_list)
def get_project_interpreter(self):
"""Return the project's specified python interpreter, if any"""
settings = self.view.settings()
return settings.get('python_interpreter', '/usr/bin/python')
def repl_open(self, cmd_list):
"""Open a SublimeREPL using provided commands"""
self.view.window().run_command(
'repl_open', {
'encoding': 'utf8',
'type': 'subprocess',
'cmd': cmd_list,
'cwd': '$file_path',
'syntax': 'Packages/Python/Python.tmLanguage'
}
)
ユーザーキーバインドファイルを開きます。
Preferences -> Key Bindings - User
プラグインを利用するためにいくつかのキーバインドを追加します。いくつかの例:
// Runs currently open file in repl
{
"keys": ["f5"],
"command": "project_venv_repl"
},
// Runs repl without any file
{
"keys": ["f6"],
"command": "project_venv_repl",
"args": {
"open_file": null
}
},
// Runs a specific file in repl, change main.py to desired file
{
"keys": ["f7"],
"command": "project_venv_repl",
"args": {
"open_file": "/home/user/example/main.py"
}
}
Virtualenv
という名前の崇高なtext3パッケージがあり、virtualenvのPythonを使用してビルドできます。
VirtualenvでPythonのすべてのバージョンをサポートし、私(MacOS)で非常にうまく機能します。
インストールするために、 command+Shift+P pacakgeコントロールを呼び出すには(まだ持っていない場合はインストールします)、install
と入力します。次にvirtualenv
と入力し、表示されたらクリックします return それをインストールします。
インストールしたら、Tools
-> Build System
-> Python + Virtualenv
。その後、使用することができます command + B Pythonプロジェクトを実行します。
Here をクリックして、詳細情報を確認します。
カスタムビルドシステムを探しています。
メニューバーから[Tools -> Build Systems -> New Build System...
]をクリックします
提供するテンプレートに記入し、.sublime-build
で終わるファイル名の下にUser
フォルダーに保存します。
カスタムビルドシステムを作成するためのドキュメントは次のとおりです。
http://docs.sublimetext.info/en/latest/reference/build_systems.html
pythonスクリプト用のカスタムビルドシステムを作成し、必要な仮想環境ごとにバリアントを追加することをお勧めします。バリアントを参照してください http://docs.sublimetext.info/en/latest /reference/build_systems.html#variants )
ビルドシステムを作成すると、それらを切り替えることができます
Tools -> Build Systems
(自動検出されない場合)、コマンドパレット(デフォルトではctrl + shift p)を使用してバリアントを切り替えます。
唯一の「落とし穴」は、実行するコマンドを記述する"cmd"
パラメーターです。デフォルトでは、コマンドとして実行するには文字列の配列が必要ですが、代わりに"Shell_cmd"
を使用して、コマンドラインから実行する方法の文字列を使用できます。
別の方法があります。仮想環境で実行されているかのように実行される新しい「ビルドシステム」を作成するだけです。ここでは、「my_python」と呼びます。目的は、このビルドシステムを使用して、崇高さを残さずにスクリプトを直接実行することです。必要がある:
preferences->Browse Packages
。これにより、設定ファイルがあるフォルダが開きます。 dir User
内に移動して、my_python.sublime-build
という名前の新しいファイルを作成します(ビルドシステム名の後に.sublime_build
が続きます。これを実行した後、Tools -> Build System
に移動すると、新しいオプションmy_python
。そのファイルに次のJSON設定を追加します。
{
"Shell_cmd": "/Users/Ted/bsd/vector/.v_venv/bin/python -u \"$file\"",
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
Shell_cmd
内で、/Users/Ted/bsd/vector/.v_venv/bin/python
をpython仮想環境)のパスに変更します。
次に、短いキーを使用してスクリプトを作成します。
仮想環境を変更する場合は、そのパスを設定ファイルにコピーするだけで完了です。アプローチには多くの作業が含まれているように見えるかもしれませんが、うまく機能し、便利です。