¿Es posible ejecutar un script de Python (no un módulo) desde dentro de ipython sin indicar su ruta? Intenté configurar PYTHONPATH pero parece funcionar solo para módulos. Me gustaria ejecutar
%run my_script.py
sin estar en el directorio que contiene el archivo.
import <module>
es esencialmente el mismo queexec(<moduleSource>)
en JavaScript o Perl.Respuestas:
desde el directorio de "my_script.py", simplemente puede hacer:
fuente
SyntaxError: invalid syntax
aquí, en la consola de Python . Python 3.5.3 en Debian 9. Sin embargo, funciona en IPython.%run
es un comando mágico de ipython, no parte del lenguaje Python en sí.Cómo ejecutar un script en Ipython
Deberias hacer eso
fuente
La
%run
magia tiene un parámetrofile_finder
que usa para obtener la ruta completa al archivo para ejecutar (ver aquí ); como nota, solo busca en el directorio actual, agregando ".py" si es necesario.No parece haber una forma de especificar qué buscador de archivos usar desde la
%run
magia, pero no hay nada que le impida definir su propio comando mágico que llama a%run
con un buscador de archivos apropiado.Como truco muy desagradable, podría anular el predeterminado
file_finder
con el suyo:Para ser honesto, al ritmo que cambia la API de IPython, es tan probable que continúe funcionando como lo es definir su propia magia.
fuente
En Python no hay diferencia entre módulos y scripts; 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 la ruta de python.
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 vs scripts
También hay una función incorporada execfile (nombre de archivo) que hará lo que quieras
fuente
__name__
== '__main__
':" al finalpara Python 3.6.5
fuente
runfile()
un comando deipython
? No funciona de inmediato para mí.