Spyder: Comment faire pour modifier un script python localement et de l'exécuter sur un noyau à distance?
je suis en utilisant Spyder 2.3.1 sous Windows 7 et ont une course de iPython 2.3 Noyau sur un Rasperry Pi RASPBIAN système d'exploitation Linux.
Je peux me connecter à un noyau externes, à l'aide d'un .fichier json et ce tutoriel:
À distance de la console ipython
Mais que faire maintenant? Si je "exécuter" un script (F5), puis le noyau essaie de exectue le script comme:
%run "C:\test.py"
ERREUR: Fichier u'C:\\test.py'
pas trouvé.
Cela revient avec un message d'erreur, ofc, parce que le script pose sur ma machine sous c: et non pas sur la machine distante/raspberry pi. Comment puis-je le dire Spyder en quelque sorte abord copier le script à la machine distante et de l'exécuter?
Si je coche "c'est un noyau à distance" case à cocher, je ne peut pas se connecter au noyau existant plus. Ce n'est que de la boîte de dire? Il copie le script via SSH sur la machine distante avant l'exécution?
Si je entrer les informations de connexion SSH, j'obtiens un "Il semble que le noyau est mort subitement d'erreur".
OriginalL'auteur venti | 2014-11-02
Vous devez vous connecter pour publier un commentaire.
Le tutoriel que vous mentionnez est un peu notre de la date de Spyder a désormais la possibilité de se connecter à distance des noyaux.
Le "C'est un noyau à distance" case à cocher, si elle est cochée, permet le passage de la boîte de dialogue où vous pouvez saisir vos informations d'identification de connexion ssh.
(Vous aurez besoin de cette information si vous avez ouvert manuellement le nécessaire tunnels ssh pour transférer le processus de ports de votre noyau à distance... )
En outre, la ipython infos de connexion (le fichier json) doit correspondre à la distance du noyau, en cours d'exécution sur votre raspberry pi.
Enfin, il n'est pas possible à ce moment de copier le script de mentir sur votre pc lorsque vous appuyez sur exécuter. La méthode préférée serait en fait l'inverse: le montage de ton raspberry pi du système de fichiers à l'aide d'un outil comme sshfs et de les éditer en place. Le plan est de mettre en œuvre un client sftp en Spyder, de sorte qu'il ne sera pas nécessaire et vous serez en mesure d'explorer le système de fichiers distant de Spyder de l'explorateur de fichiers.
Pour résumer:
1) en supposant que vous êtes connecté à votre raspberry pi, le lancement d'un local IPython noyau avec
ipython noyau. Il devrait vous donner le nom de votre fichier json à utiliser, vous devez les copier sur votre pc local.
2) dans spyder sur votre pc, connectez-vous à une distance du noyau avec ce fichier json et votre ssh informations d'identification
Je sais que c'est lourd, mais c'est une première étape..
Si vous utilisez un mot de passe de moins en moins de la connexion ssh, alors vous n'avez pas besoin de vérifier le C'est un noyau à distance boîte. Je suppose que c'est votre configuration, car sinon, je ne comprends pas comment vous vous connectez à votre rasperry pi. Dans tous les cas, la fonctionnalité est là pour aider les utilisateurs à ouvrir les tunnels ssh afin qu'ils puissent se connecter automatiquement à des noyaux dans d'autres machines. Mais si vous n'en avez pas besoin, alors vous n'avez pas besoin de s'inquiéter à ce sujet.
OriginalL'auteur Quant
Après une recherche dans la
site-packages\spyderlib
répertoire pour le mot-clé%run
, j'ai trouvé la méthode(ensite-packages\spyderlib\plugins\ipythonconsole.py
) qui construit l'%run
commande:J'ai ajouté le code suivant pour convertir les sentiers après
else: # External kernels, use %run
maintenant d'exécuter le fichier sur la machine distante, quand j'appuie sur F5.
Je suis sur
Spyder 2.3.9
avec un partage samba mappé à z: de lecteur.J'ai configuré le spyder pour se connecter à distance à un ipython kernel en utilisant le fichier json, comme mentionné par l'op, quand f5 est frappé, spyder envoie
%run filepath
à la ipython kernel, l'op a l'erreur se produit pas parce que le chemin n'existe pas sur la machine distante, j'ai mappé samba partage de fichier à z: lecteur de sorte que la distance a2ème partie (désolé, j'ai accidentellement touché soumettre) de la machine distante a le même fichier (avant la commande est envoyée, spyder également enregistrer le fichier), le code dans ma réponse se traduit par le local chemin d'accès à distance filepath. Quant à la seconde question, je ne pense pas que ssh est nécessaire, cependant je ne l'utilisation de l'option ssh en spyder, mais je pense que cela ne fait de la redirection de port (parce que j'ai le pare-feu sur la machine distante).
Je vois, merci! J'ai lancé le noyau sur ma télécommande serveur Ubuntu, et j'ai copié le correspondant du fichier json sur ma machine Windows. Ensuite, je suis entré les infos dans le "se connecter à un noyau existant" de la boîte de dialogue, mais quand je clique sur connecter, il me dit "impossible d'ouvrir le tunnel SSH, Paramiko pas disponible". Toutes les idées sur quoi faire ensuite?
Il suffit de ne
pip install Paramiko
sur votre machine locale, en fonction de votre python site-packages emplacement, vous pourriez avoir à exécuter cmd en tant qu'Administrateur pour installer.OriginalL'auteur Roy Cai
Une autre option est d'utiliser Spyder cellules d'envoyer tout le contenu de votre fichier à la console IPython. Je pense que c'est plus facile de monter votre système de fichiers distant avec Samba ou sshfs (dans le cas où cela n'est pas possible ou difficile à faire).
Cellules sont définies par l'ajout de lignes de la forme
# %%
à votre fichier. Par exemple, disons que votre fichier est:Alors vous pouvez simplement ajouter une cellule en bas comme ce
et en appuyant sur Ctrl + Entrée au-dessus de la ligne de cellules, la totalité du contenu de votre fichier sera envoyé à la console et évalué à la fois.
Oui, il n'est pas possible d'interrompre externe noyaux à l'instant. Voir ce IPython question pour une discussion à ce sujet.
OriginalL'auteur Carlos Cordoba