write tutorial read python path ipython

tutorial - Ejecutar script python dentro de ipython



read fasta python (4)

¿Es posible ejecutar un script de python (no un módulo) desde dentro de ipython sin indicar su ruta? Traté de establecer PYTHONPATH, pero parece funcionar solo para módulos. Me gustaría ejecutar

%run my_script.py

sin estar en el directorio que contiene el archivo.


Cómo ejecutar un script en Ipython

import os filepath=''C://Users//User//FolderWithPythonScript'' os.chdir(filepath) %run pyFileInThatFilePath.py

Deberias hacer eso


El %run magic tiene un parámetro file_finder que usa para obtener la ruta completa al archivo para ejecutar (ver here ); como se observa, solo se ve en el directorio actual, agregando ".py" si es necesario.

No parece haber una manera de especificar qué buscador de archivos usar del %run magic, pero no hay nada que te impida definir tu propio comando mágico que llama a %run con un buscador de archivos apropiado.

Como un hack muy desagradable, puedes anular el file_finder predeterminado con el tuyo:

IPython.core.magics.execution.ExecutionMagics.run.im_func.func_defaults[2] = my_file_finder

Para ser honesto, al ritmo que la API de IPython está cambiando es probable que continúe funcionando, como lo es definir tu propia magia.


En Python no hay diferencia entre los módulos y las secuencias de comandos; Puede ejecutar tanto scripts como módulos. El archivo debe estar en pythonpath AFAIK porque python debe poder encontrar el archivo en cuestión. Si python se ejecuta desde un directorio, entonces el directorio se agrega automáticamente a pythonpath.

Consulte ¿Cuál es la mejor manera de llamar a un script de Python desde otro script de Python? para obtener más información sobre módulos y scripts

También hay una función incorporada execfile (nombre de archivo) que hará lo que quieras


desde el directorio de "my_script.py" puedes simplemente hacer:

%run ./my_script.py