python - Sublime text3 y virtualenvs
sublimetext3 virtualenvwrapper (4)
Esperemos que esto sea lo que estás imaginando. Intenté simplificar mi solución y eliminar algunas cosas que probablemente no necesite.
Las ventajas de este método son:
- Presione un solo botón para iniciar un SublimeREPL con el intérprete correcto y ejecute un archivo si lo desea.
- Después de configurar el intérprete, no se requieren cambios ni pasos adicionales al cambiar de proyecto.
- Puede extenderse fácilmente para recoger automáticamente variables de entorno específicas del proyecto, directorios de trabajo deseados, ejecutar pruebas, abrir un shell de Django, etc.
Déjeme saber si tiene alguna pregunta, o si me he perdido totalmente la marca de lo que está buscando hacer.
Establecer el intérprete de Python del proyecto
Abra nuestro archivo de proyecto para editarlo:
Project -> Edit Project
Agregue una nueva clave a la configuración del proyecto que apunte al virtualenv deseado:
"settings": { "python_interpreter": "/home/user/.virtualenvs/example/bin/python" }
Los complementos como Anaconda también usan una clave de configuración del proyecto "python_interpreter"
.
Crear un complemento para tomar esta configuración y lanzar un SublimeREPL
Vaya al directorio de
Packages
Sublime Text:Preferences -> Browse Packages...
Cree un nuevo archivo de Python para nuestro complemento, algo como:
project_venv_repls.py
Copia el siguiente código de Python en este nuevo archivo:
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'' } )
Establecer teclas de acceso rápido
Abrir archivo de enlace de usuario clave:
Preferences -> Key Bindings - User
Agregue algunos enlaces clave para hacer uso del complemento. Algunos ejemplos:
// 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" } }
Soy totalmente nuevo con sublime3, pero no pude encontrar nada útil para mi problema ...
Tengo diferentes virtualenvs (hechos con virtualenwrapper) y me gustaría poder especificar qué venv usar en cada proyecto
Ya que estoy usando el complemento SublimeREPL para tener compilaciones personalizadas, ¿cómo puedo especificar con qué instalación de Python construir mi proyecto?
por ejemplo, cuando trabajo en el proyecto A quiero ejecutar secuencias de comandos con la pitón de venvA, y cuando trabajo en el proyecto B quiero ejecutar cosas con venvB (utilizando una secuencia de comandos de compilación diferente)
lo siento mi terrible ingles ...
Estás buscando sistemas personalizados de construcción.
Desde la barra de menú, haga clic en Tools -> Build Systems -> New Build System...
Complete la plantilla que proporciona y .sublime-build
con cualquier nombre de archivo que termine en .sublime-build
en su carpeta de User
.
Aquí está la documentación para hacer sistemas de compilación personalizados:
http://docs.sublimetext.info/en/latest/reference/build_systems.html
Recomiendo hacer un sistema de compilación personalizado para los scripts de Python, luego agregue variantes para cada entorno virtual que desee. (ver variantes http://docs.sublimetext.info/en/latest/reference/build_systems.html#variants )
Uno hace un sistema de construcción, puede cambiarlos de
Tools -> Build Systems
(si no se detecta automáticamente) y use la paleta de comandos (control por defecto ctrl + shift p) para cambiar entre las variantes.
El único "gotcha" es el parámetro "cmd"
para describir qué comando ejecutar. De forma predeterminada, se necesita una matriz de cadenas para ejecutarse como un comando, pero puede usar "shell_cmd"
lugar de usar una cadena de cómo lo ejecutaría a través de la línea de comandos.
Hay un paquete sublime de text3, llamado Virtualenv
, que te permite compilar usando Python desde tu virtualenv.
Es compatible con cualquier versión de Python en tu virtualenv, y funciona muy bien para mí (MacOS).
Para instalarlo, solo ordenamos + Shift + P para llamar a pacakge control (instálalo si aún no lo tiene), luego teclee install
. A continuación, escriba virtualenv
, cuando vea que aparece, haga clic en volver para instalarlo.
Después de instalarlo, seleccione Tools
-> Build System
-> Python + Virtualenv
. Luego puedes usar el comando + B para ejecutar tus proyectos de Python.
Haga clic Here para ver más información.
Tengo una alternativa. Simplemente creando un nuevo ''Sistema de compilación'' que se ejecuta como en el entorno virtual. Aquí lo llamamos ''my_python''. El objetivo es utilizar este sistema de compilación para ejecutar mi script directamente sin dejar lo sublime. Necesitas:
- Primero,
preferences->Browse Packages
. Esto abrirá una carpeta en la que se encuentran los archivos de configuración. Vaya a dirUser
y cree un nuevo archivo llamadomy_python.sublime-build
(compuesto del nombre del sistema de compilación seguido de.sublime_build
. Después de hacer esto, vaya aTools -> Build System
y verá una nueva opción,my_python
. Agregue la siguiente configuración JSON a ese archivo.
{ "shell_cmd": "/Users/Ted/bsd/vector/.v_venv/bin/python -u /"$file/"", "file_regex": "^[ ]*File /"(...*?)/", line ([0-9]*)", "selector": "source.python" }
Dentro de
shell_cmd
, cambie/Users/Ted/bsd/vector/.v_venv/bin/python
a la ruta de su entorno virtual de Python.Luego solo usa la tecla corta para construir tu script.
Cuando desee cambiar su entorno virtual, simplemente copie su ruta al archivo de configuración y listo. Tal vez el enfoque parece contener mucho trabajo, pero funciona bien y es conveniente.