Lorsque je me suis connecté à un serveur Jupyter distant avec VScode, j'ai pu exécuter un fichier local et la sortie du fichier lors de l'exécution du fichier était distante.
J'étudie généralement les calculs numériques en utilisant Python à l'université. Comme les ressources informatiques du PC de laboratoire sont rares, l'environnement d'exécution est construit sur le PC domestique, et le travail transfère le port local du notebook jupyter démarré sur le PC domestique vers le même port que celui du laboratoire. L'image est
PC de laboratoire (nom d'hôte: local) ↓ [local] ssh -L 8888:localhost:8888 remote PC domestique (nom d'hôte: distant) ↓ [remote] jupyter notebook PC de laboratoire ↓ [local] xgd-open http://localhost:8888/?token=<token>
C'est comme ça. Seuls les fichiers distants sont accessibles de cette manière. Non, au moins je comprends cela. Étant donné que les deux PC sont Windows, la configuration du répertoire de travail de jupyter à démarrer à distance sur Onedrive a facilité la synchronisation des fichiers avec local. L'image est
C:/users/<remote_user>/onedrive == C:/users/<local_user>/onedrive
C'est comme ça.
Cet automne, Visual Studio Code a lancé la prise en charge native des notebooks jupyter.
Référence: Il semble que l'extension Python de VS Code supporte nativement Jupyter, j'ai donc essayé de l'utiliser immédiatement. Bien que jupyter notebook ait l'avantage d'un environnement de développement interactif, il ne dispose pas de fonctions auxiliaires fournies avec les éditeurs de texte hautes performances tels qu'Atom, et comme il s'agit d'une application Web, le style d'interface utilisateur doit être décrit en css. Fastidieux. J'ai entendu dire que cette mise à jour de VScode avait également la possibilité de se connecter à un serveur jupyter distant, et cela m'a rappelé cette grosse vague que je n'avais pas d'autre choix que de surfer. Cependant, probablement parce qu'il n'est sorti que depuis quelques mois, il n'y a aucun article qui se concentre sur la fonction de connexion à ce serveur jupyter distant. Quand j'ai cherché, je suis tombé sur une toute nouvelle technologie qui "peut exécuter des fichiers locaux dans un environnement d'exécution à distance". De plus, le comportement n'était pas intuitivement compréhensible, j'ai donc décidé de le partager sous forme d'article.
À titre d'essai, j'ai utilisé mon propre ordinateur portable au lieu du PC de laboratoire mentionné ci-dessus.
Nom d'hôte: distant; bureau Macho avec des ressources informatiques abondantes win10, python3.6, jupyter
Nom d'hôte: local; ordinateur portable Gari avec une horloge atomique CPU d'environ 1 GHz win10, python3.6, jupyter, VScode
C'est sur le net, je vais donc l'omettre. Je viens d'ajouter le corps principal, les add-ons japonais et python.
Laissez le répertoire de travail VScode local être local_dir et le répertoire de travail du serveur jupyter distant remote_dir.
Tout d'abord, lancez votre notebook dans votre environnement local. Tapez ce qui suit dans la palette de commandes VScode pour ouvrir un bloc-notes vide.
Python: Create New Blank Jupyter Notebook
Ensuite, écrivez le code suivant dans la cellule et exécutez-le.
~/local_dir/whereami.ipynb
#ln[1]
import socket
print(socket.gethostname())
#Out[1]
'local' #Nom d'hôte du PC local
J'ai pu l'exécuter dans mon environnement local. Puis connectez-vous au serveur jupyter distant.
Python: Specify local or remote Jupyter server for connections
Ensuite, une invite apparaîtra, spécifiez l'URL du notebook jupyter distant. Dans mon environnement, comme mentionné ci-dessus, en supposant un ssh séparé
http://localhost:8888/?token=<token>
n'est-ce pas. Un dossier et des fichiers cachés seront créés dans local_dir.
~/local_dir/.vscode/settings.json
{
"python.dataScience.jupyterServerURI": http://localhost:8888/?token=<token>
}
L'ouverture d'un notebook dans le répertoire contenant ce fichier de configuration déplacera l'environnement d'exécution vers un emplacement distant.
~/local_dir/whereami.ipynb
#ln[1]
import socket
print(socket.gethostname())
#Out[1]
'remote' #Nom d'hôte du PC distant
Où se trouve le fichier exécutable réel?
~/local_dir/whereami.ipynb
#ln[2]
import os
print(os.path.abspath(""))
#Out[2]
'<remote_dir>' #répertoire de travail du serveur jupyter
Je pensais ouvrir un fichier local, mais je suis censé ouvrir un fichier dans le répertoire de travail du PC distant. Quand j'ai regardé dans l'invite distante qui a ouvert le notebook jupyter, j'ai vu des preuves de mise en cache dans le journal. En fait, le fichier local nommé Sans titre [0-9] + .ipynb est mis en cache dans le répertoire de travail du serveur jupyter, et il semble que le cache est supprimé lorsque VScode est fermé. Tente de sortir un fichier dans cet état.
~/local_dir/whereami.ipynb
#ln[3]
import numpy as np
a = np.array([1,2,3])
np.savetxt("whereami.csv", a)
Où est la sortie whereami.csv?
~/remote_dir/whereami.csv
était.
C'est éloigné, mais ce n'était pas le cas!
J'ai essayé d'exécuter Jupyter Notebook avec Visual Studio Code https://dev.classmethod.jp/server-side/python/visual-studio-code-jupyter-notebook/
Il semble que l'extension Python de VS Code ait un support natif pour Jupyter, j'ai donc essayé de l'utiliser immédiatement. https://qiita.com/simonritchie/items/5d865e72dba47cf8f6c0
Recommended Posts