ruta de la consola pydev para el editor activo

Quiero hacer algunos scripts en python con pydev. El problema que tengo es que no puedo iniciar la consola en el directorio del proyecto donde se encuentra el script, la consola se inicia en la carpeta pydev / aptana (en algún lugar de la carpeta aptana).

Puedo resolver estos agregando el siguiente código a mi script:

import os import inspect filename = inspect.getframeinfo(inspect.currentframe()).filename curpath = os.path.dirname(os.path.abspath(filename)) os.chdir(curpath) 

¿Alguien sabe cómo cambiar el directorio de la consola a la ruta de la posición del proyecto automáticamente cuando se inicia sobre el modo pydev Ctrl + Alt + Enter ?

–EDITAR–

Aquí está mi propia solución si a alguien le gusta más:

 import sys; print('%s %s' % (sys.executable or sys.platform, sys.version)) import os;os.chdir([p for p in os.environ['PYTHONPATH'].split(os.pathsep) if ('Aptana Workspace' in p)][0]) pwd() 

Usé un poco de pirateo para hacer que esto funcionara. Si entiendo su pregunta, desea tener el directorio de trabajo actual en el entorno IPython configurado en el directorio donde reside su archivo activo. Entonces, si está editando D: /projects/file.py, desea que el comando pwd () (en IPython) devuelva D: / projects. Aquí es de donde viene la parte pirateada de mi solución. Todos mis proyectos están en mi disco D, pero todas las importaciones normales de Python provienen de la ubicación de instalación en mi disco C. Así que lo siguiente:

 os.environ['PYTHONPATH'].split(os.pathsep) 

da como resultado una lista en la que solo hay una ruta de acceso en la unidad D que es del directorio de mi archivo activo (debido a que PyDev configuró PYTHONPATH para incluir el directorio correcto). Si no usa la unidad D, debería haber alguna otra forma única de identificar cuál de las rutas en esa lista pertenece a sus proyectos (como en Documentos o Mis documentos, etc.). Si no hay una forma única de identificar la ruta de su proyecto, entonces esta respuesta no funciona. Pero en el caso simple de que “D: /” es suficiente como identificador único, este es mi código de inicio en la configuración (Ventana> Preferencias> PyDev> Consola interactiva)

 import sys; print('%s %s' % (sys.executable or sys.platform, sys.version)) import os;os.chdir([p for p in os.environ['PYTHONPATH'].split(os.pathsep) if p.startswith("D")][0]) pwd() 

Agregué lo siguiente a mi script de ejecución previa en Preferencias -> PyDev -> Consola interactiva -> Comandos iniciales:

 import os import inspect __old_runfile = runfile def runfile(file): curpath = os.path.dirname(os.path.abspath(file)) os.chdir(curpath) __old_runfile(file) 

Esto anula el comando de ejecución del archivo predeterminado y hace que Ctrl + Alt + Enter cambie al directorio del script al cargarlo.

Tuve el mismo problema y acabo de encontrar otra solución. Es similar a los ya mencionados pero totalmente configurable dentro de eclipse / pydev (no es necesario modificar sus scripts).

  1. En Ventana -> Preferencias -> PyDev -> Intérpretes -> Interprete de Python, elija la pestaña Entorno y agregue una nueva variable con el nombre PROJECT_PATH (o cualquier cosa de su elección) y Value $ {project_loc} (esta es una ruta absoluta a la carpeta del proyecto) .
  2. Luego, en Ventana -> Preferencias -> PyDev -> Consola interactiva -> Comando Inicial, agregue línea import os; os.chdir(os.environ['PROJECT_PATH']) import os; os.chdir(os.environ['PROJECT_PATH']) .

(Funciona si inicia una “Consola para el editor actualmente en funcionamiento”.)