web-dev-qa-db-de.com

Verwendung von Virtualenv mit erhabenem Text 2

Ich benutze sublime text 2 für die Python-Entwicklung zusammen mit virtualenv!

Das Standard-Buildsystem für sublime text 2 verwendet die standardmäßige Python-Installation und nicht meine virtuelle Umgebung, auf der meine Pakete installiert sind.

Wie kann ich mit meiner Virtualenv einen sublime Text 2 erstellen? 

Derzeit nutze ich das Terminal, um meine Umgebung zu aktivieren und meine Skripts auszuführen.

UPDATE: Ich habe es nie zum Laufen gebracht, aber da ich eine Flasche benutze und sie baut, wenn Sie eine Änderung vornehmen, ist das kein großes Problem

26
Rigobert Song

Sie können den Pfad für das Build-System auch wie folgt in das Verzeichnis bin Ihrer virtuellen Umgebung setzen:

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

Auf diese Weise können auch andere Tools, wie nose im Beispiel, die korrekte Python-Binärdatei aus der virtualenv finden.

15
user1248490

In Windows funktioniert das für mich:

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

Das Build-System von Sublime unterstützt Variablen, die mit Sublime-Projektdateien verwendet werden können, um dies für Projekte etwas tragbarer zu machen. 

Wenn sich Ihre virtuellen Umgebungen an einem Standardstandort befinden, erstellen Sie eine neue Projektdatei (Projekt -> Projekt speichern unter) im Stammverzeichnis Ihres Projekts direkt über Ihrem virtuellen Umgebungsverzeichnis. Dann erstellen Sie eine neue Build-Datei mit etwas wie folgt:

{

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

}

Der Rest scheint dann automatisch aufgehoben zu werden - genauso, als wenn Sie ./venv/bin/python über die Befehlszeile eingegeben hätten. Sie brauchen sich nicht mit Pfaden, Umgebungsvariablen usw. zu beschäftigen. 

12
Russell Beattie

Ich benutze Flask, aber ich denke, es trifft auf fast jeden Fall zu.
Mein aktuelles Build ist so, wobei "benicio" das Verzeichnis meines Projekts ist:

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

Es tut mir leid, noch eine Antwort hinzufügen zu müssen - aber das hat mir viel Kummer bereitet, als ich das herausfand. 

Sie müssen nicht nur ein Build-System wie das folgende erstellen:

"build_systems":
[
{
    "name": "Maths",
    "env": {"PYTHONPATH":"/home/nebffa/Desktop"},
    "path":"$project_path/bin",
    "cmd": ["$project_path/bin/python3.3", "-u", "$file"]
}
]

sie MÜSSEN jedoch eine Einstellung in Sublime Text ändern. Gehen Sie zu Extras -> System erstellen -> "Mathematik". In meinem Fall muss ich "Maths" wählen, weil ich so mein Build-System nannte. Wenn Sie dies nicht tun, verwendet Sublime Text Ihr Build-System nicht !!

3
nebffa

Ich habe gerade einen erhabenen Text 3 bekommen, um in einer virtualenv zu arbeiten. Obwohl das OP ST2 angegeben hat, gibt es wahrscheinlich alle mehr von mir, die ST3 verwenden. Dank user1248490 und Russell Beattie bin ich zu folgendem gekommen:

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

Beachten Sie, dass "cmd" jetzt in ST3 "Shell_cmd" ist. Siehe ST3-Blog

2
Randy Skretka

Dies ist, was ich als Build-System habe (vorausgesetzt, meine virtualenv wird in meinem aktuellen Projektverzeichnis als Ordner mit dem Namen 'env' erstellt). Dies bedeutet zumindest, dass ich das Buildsystem nicht ständig zwischen Projekten ändern muss:

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

Ich habe dies als New Build System gespeichert (Tools -> Build System -> New Build System).

1
HHHH

Unter MAC OSX funktioniert das für mich

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

Was ich tat, war einfach zu halten:

Ging zum root-Laufwerk und erstellte den Python-Ordner:

Sudo mkdir python

ging dann dort rein und erstellte die virtualenv

virtualenv --no-site-packages virtualenvname

erstellt dann mit dem obigen Befehl ein neues Gebäude in ST2 und es funktioniert

1
sojim

Ich habe eine Antwort für alle, die Heroku verwenden und ihr Vorarbeiterwerkzeug verwenden, und es funktioniert hervorragend. Erstellen Sie einfach ein neues Build-System wie folgt:

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

Dies zieht alle Umgebungsvariablen ein, die für Foreman verfügbar sind, einschließlich Ihrer $ PATH-Variablen von virtualenv, wodurch der Python-Pfad um virtualenv Python erweitert wird.

0
Dan Gayle

Angenommen, Sie behalten Ihre projektspezifische Virtualenv in einem .env-Ordner auf der obersten Ebene Ihres Projekts.

  1. Sublime> Projekt> Projekt speichern unter ... (falls noch nicht geschehen. Auf diese Weise können Sie benutzerdefinierte Erstellungsoptionen für das Projekt festlegen
  2. Projekt> Projekt bearbeiten:

    {
       "folders":[
           {
               "path": ".",
               "folder_exclude_patterns": [".env"],
           }
       ],
       "build_systems":[
           {
               "name": "Run in VirtualEnv",
               "Shell_cmd": "source $project_path/.env/bin/activate && python -u $file"
           }
       ]
    }
    
  3. Extras> System erstellen> In VirtualEnv ausführen

  4. Extras> Erstellen

Bitte beachten Sie, dass dies mit Sublime Text 3 getestet wurde.

0
Filipp Lepalaan

Ich verwende dies, um mein Flask-Projekt zu erstellen. Ich habe meinen Projekteinstellungen den folgenden Code hinzugefügt: Projekt -> Projekt bearbeiten

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

und dann wechsle ich einfach zu meiner run.py-Datei und drücke Ctrl+B

0
happygoat

quelle hat für mich im Build auf Lubuntu nicht funktioniert. use '.' oder Punkt statt "Quelle".

das hat funktioniert:

{

    "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

das hat für mich funktioniert:

{
    "cmd": ["C:/Users/user/virtualenvs/env1/Scripts/python.exe", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

gespeichert in:

"C:\Users\user\AppData\Roaming\Sublime Text 2\Packages\User\"

wie 

"Python_env1.sublime-build"

Wählen

Tools> Build System> Python_env1

erledigt!

mit windows 8.1, st2

0
jes516

diese Kombination hat sehr gut funktioniert: 2 Schritte

1) füge die 2 entsprechenden Schlüssel zum 'env'-Schlüssel hinzu. A) Django_SETTINGS_MODULE B) PYTHONPATH

2) Aktualisieren Sie cmd, um die Version von Python anzuzeigen, die Sie verwenden möchten.

{

"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