Est-il possible d'exécuter un script python (pas de module) depuis ipython sans indiquer son chemin? J'ai essayé de définir PYTHONPATH mais cela ne semble fonctionner que pour les modules. Je voudrais exécuter
%run my_script.py
sans être dans le répertoire contenant le fichier.
depuis le répertoire de "my_script.py", vous pouvez simplement faire:
%run ./my_script.py
import os
filepath='C:\\Users\\User\\FolderWithPythonScript'
os.chdir(filepath)
%run pyFileInThatFilePath.py
Ça devrait le faire
En python, il n'y a pas de différence entre les modules et les scripts; Vous pouvez exécuter des scripts et des modules. Le fichier doit être sur le chemin d'accès pythonAuto, car python doit pouvoir trouver le fichier en question. Si python est exécuté à partir d'un répertoire, celui-ci est automatiquement ajouté au chemin python.
Reportez-vous à Quel est le meilleur moyen d'appeler un script Python à partir d'un autre script Python? == pour plus d'informations sur les modules et les scripts
Il y a aussi une fonction intégrée execfile (filename) qui fera ce que vous voulez
La magie %run
a un paramètre file_Finder
qu'il utilise pour obtenir le chemin complet du fichier à exécuter (voir here ); comme vous le constatez, il suffit de regarder dans le répertoire en cours, en ajoutant ".py" si nécessaire.
Il ne semble pas y avoir de moyen de spécifier quel fichier Finder utiliser à partir de la magie %run
, mais rien ne vous en empêche définir votre propre commande magique qui appelle %run
avec un fichier Finder approprié.
En tant que très hack méchant, vous pouvez remplacer le file_Finder
par défaut par votre propre:
IPython.core.magics.execution.ExecutionMagics.run.im_func.func_defaults[2] = my_file_Finder
Pour être honnête, l'API IPython évolue au même rythme que la définition de votre propre magie.
for Python 3.6.5 importer os os.getcwd () runfile ('testing.py')