É possível executar um script python (não módulo) de dentro do ipython sem indicar seu caminho? Tentei definir o PYTHONPATH, mas parece funcionar apenas para módulos. Eu gostaria de executar
%run my_script.py
sem estar no diretório que contém o arquivo.
import <module>
é essencialmente o mesmo queexec(<moduleSource>)
em JavaScript ou Perl.Respostas:
de dentro do diretório "my_script.py" você pode simplesmente fazer:
fonte
SyntaxError: invalid syntax
aqui, no console Python . Python 3.5.3 no Debian 9. No entanto, funciona no IPython.%run
é um comando mágico do ipython, não faz parte da própria linguagem Python.Como executar um script em Ipython
Isso deve resolver
fonte
A
%run
mágica possui um parâmetrofile_finder
usado para obter o caminho completo para a execução do arquivo (veja aqui ); como você observa, ele apenas aparece no diretório atual, acrescentando ".py", se necessário.Não parece ser uma maneira de especificar qual arquivo localizador para uso a partir da
%run
magia, mas não há nada para impedi-lo de definir o seu próprio comando mágico que chamadas para%run
com um localizador de arquivo apropriado.Como um hack muito desagradável, você pode substituir o padrão
file_finder
pelo seu:Para ser sincero, na taxa em que a API do IPython está mudando, é provável que continue a funcionar como define sua própria mágica.
fonte
Em python, não há diferença entre módulos e scripts; Você pode executar scripts e módulos. O arquivo deve estar no pythonpath AFAIK porque o python deve poder encontrar o arquivo em questão. Se o python for executado a partir de um diretório, o diretório será automaticamente adicionado ao pythonpath.
Consulte Qual é a melhor maneira de chamar um script Python de outro script Python? para obter mais informações sobre módulos x scripts
Há também uma função interna execfile (nome do arquivo) que fará o que você deseja
fonte
__name__
== '__main__
':" no finalpara Python 3.6.5
fonte
runfile()
um comando deipython
? Não funciona pronto para mim.