web-dev-qa-db-ja.com

崇高なtext3とvirtualenv

私はsublime3でまったく新しいのですが、私の問題に役立つものを見つけることができませんでした...

Virtualenv(virtualenwrapperで作成)が異なるため、各プロジェクトで使用するvenvを指定できるようにしたい

SublimeREPLプラグインを使用してカスタムビルドを作成しているため、どのpythonインストールでプロジェクトをビルドするかを指定するにはどうすればよいですか?

たとえば、プロジェクトAで作業するときはvenvAのpythonでスクリプトを実行し、プロジェクトBで作業するときはvenvBで実行します(別のビルドスクリプトを使用)

すみません私のひどい英語...

39
Doc

うまくいけば、これはあなたが想像している線に沿っています。私は解決策を簡素化し、必要のないものを削除しようとしました。

この方法の利点は次のとおりです。

  • 必要に応じて、ボタンを1回押すだけで、正しいインタープリターおよびでSublimeREPLを起動します。
  • インタープリターを設定した後、プロジェクトを切り替えるときに変更や追加の手順は必要ありません。
  • 簡単に拡張して、プロジェクト固有の環境変数、目的の作業ディレクトリを自動的に選択し、テストを実行し、Django= Shellなどを開くことができます。

ご質問がある場合、または私があなたが何をしたいのかについてのマークを完全に逃した場合、私に知らせてください。

プロジェクトのPython Interpreterを設定

  1. 編集用にプロジェクトファイルを開きます。

    Project -> Edit Project
    
  2. 目的のvirtualenvを指す新しいキーをプロジェクトの設定に追加します。

    "settings": {
        "python_interpreter": "/home/user/.virtualenvs/example/bin/python"
    }
    

"python_interpreter"プロジェクト設定キーは、 Anaconda などのプラグインでも使用されます。

この設定を取得するプラグインを作成し、SublimeREPLを起動します

  1. Sublime TextのPackagesディレクトリを参照します。

    Preferences -> Browse Packages...
    
  2. プラグイン用に新しいpythonファイルを作成します:project_venv_repls.py

  3. 次の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'
                }
            )
    

ホットキーを設定する

  1. ユーザーキーバインドファイルを開きます。

    Preferences -> Key Bindings - User
    
  2. プラグインを利用するためにいくつかのキーバインドを追加します。いくつかの例:

    // 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"
        }
    }
    
52
Soytoise

Virtualenvという名前の崇高なtext3パッケージがあり、virtualenvのPythonを使用してビルドできます。

VirtualenvでPythonのすべてのバージョンをサポートし、私(MacOS)で非常にうまく機能します。

インストールするために、 command+Shift+P pacakgeコントロールを呼び出すには(まだ持っていない場合はインストールします)、installと入力します。次にvirtualenvと入力し、表示されたらクリックします return それをインストールします。

インストールしたら、Tools-> Build System-> Python + Virtualenv。その後、使用することができます command + B Pythonプロジェクトを実行します。

Here をクリックして、詳細情報を確認します。

19
Jay Wong

カスタムビルドシステムを探しています。

メニューバーから[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"を使用して、コマンドラインから実行する方法の文字列を使用できます。

4
Allison

別の方法があります。仮想環境で実行されているかのように実行される新しい「ビルドシステム」を作成するだけです。ここでは、「my_python」と呼びます。目的は、このビルドシステムを使用して、崇高さを残さずにスクリプトを直接実行することです。必要がある:

  1. まず、preferences->Browse Packages。これにより、設定ファイルがあるフォルダが開きます。 dir User内に移動して、my_python.sublime-buildという名前の新しいファイルを作成します(ビルドシステム名の後に.sublime_buildが続きます。これを実行した後、Tools -> Build Systemに移動すると、新しいオプションmy_python
  2. そのファイルに次の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仮想環境)のパスに変更します。

  3. 次に、短いキーを使用してスクリプトを作成します。

仮想環境を変更する場合は、そのパスを設定ファイルにコピーするだけで完了です。アプローチには多くの作業が含まれているように見えるかもしれませんが、うまく機能し、便利です。

3
Guohua Cheng