web-dev-qa-db-fra.com

Ajout de "Ouvrir Anaconda Prompt ici" au menu contextuel (Windows)

Je voudrais ajouter une option dans mon menu contextuel (Windows 7 et 10) pour ouvrir une invite Anaconda dans l'emplacement du fichier lorsque je clique avec le bouton droit sur le dossier, mais je ne parviens pas à trouver la bonne clé de registre.

Voici ce que je sais faire:

  • Ajouter un élément au menu contextuel qui ouvre une fenêtre de commande normale à l'emplacement du dossier
  • Ouvrez une invite Anaconda depuis cmd (exécutez leur fichier "activate.bat")

Ce que je ne peux pas comprendre, c'est comment combiner ces étapes dans une seule clé de registre afin que je puisse ouvrir une invite Anaconda puis cd dans cette invite dans le dossier en cours. Mais je m'approche peut-être de la mauvaise façon.

L'aide des gourous d'Internet est appréciée.

12
jrinker

Dans les versions récentes d'Anaconda (je suis à conda 4.5.5), Ils ont changé le comportement et le raccourci vers Anaconda Prompt, donc la nouvelle procédure est en fait un peu plus simple que celle décrite par bdforbes .

La nouvelle façon de lancer Anaconda Prompt dans un dossier est

cmd.exe /K %%USERPROFILE%%\AppData\Local\Continuum\Anaconda3\Scripts\activate.bat

pushd est de changer le répertoire courant, %V est le répertoire courant et /K est d'exécuter une commande.

Le cwp2.py Modifié n'est donc plus nécessaire. Mettez le contenu suivant dans un fichier .bat et exécutez en tant qu'administrateur pour ajouter les clés nécessaires au registre (une version modifiée du Gist publiée par Thibaud Ruelle dans les commentaires à l'autre réponse)

REG ADD HKCR\Directory\Background\Shell\Anaconda\ /ve /f /d "Anaconda Prompt Here"
REG ADD HKCR\Directory\Background\Shell\Anaconda\ /v Icon /f /t REG_EXPAND_SZ /d %%USERPROFILE%%\\Anaconda3\\Menu\\Iconleak-Atrous-Console.ico
REG ADD HKCR\Directory\Background\Shell\Anaconda\command /f /ve /t REG_EXPAND_SZ /d "%windir%\System32\cmd.exe pushd "%V" "/K" %%USERPROFILE%%\Anaconda3\Scripts\activate.bat %%USERPROFILE%%\Anaconda3"
REG ADD HKCR\Directory\Shell\Anaconda\ /ve /f /d "Anaconda Prompt Here"
REG ADD HKCR\Directory\Shell\Anaconda\ /v Icon /f /t REG_EXPAND_SZ /d %%USERPROFILE%%\\Anaconda3\\Menu\\Iconleak-Atrous-Console.ico
REG ADD HKCR\Directory\Shell\Anaconda\command /f /ve /t REG_EXPAND_SZ /d "%windir%\System32\cmd.exe pushd "%V" "/K" %%USERPROFILE%%\Anaconda3\Scripts\activate.bat %%USERPROFILE%%\Anaconda3"
8
Filip S.

[~ # ~] mise à jour [~ # ~] : Le réponse de Filip S. pourrait mieux fonctionner sur les versions plus récentes d'Anaconda.

UNE AUTRE MISE À JOUR : J'ai résolu un problème avec l'utilisation de ce lanceur dans la racine du lecteur (par exemple C:\ ou D:\). C'est très mineur: des espaces ont été ajoutés à l'entrée de registre (partie pertinente: "%V ") afin que la barre oblique inverse ne déroute pas Windows.

Message d'origine

Je voulais aussi cette fonctionnalité, donc je l'ai fait. Les étapes clés sont décrites ci-dessous, avec l'explication plus loin.

Solution

Avertissement : ne continuez pas à moins que vous soyez à l'aise de modifier le registre et que vous utilisiez un système hors production. Et évidemment, ne dirigez pas tout ce que je vous dis, vérifiez que cela ne fait rien de néfaste. Tu ne me connais pas!

1. Modifiez le script Anaconda qui définit le répertoire de travail

Trouvez le script Anaconda cwp.py (le mien était en C:\Users\bdforbes\Anaconda3\) et copiez-le dans cwp2.py dans le même répertoire.

Modifier cwp2.py pour accepter un chemin cible comme deuxième argument et passer à ce répertoire:

prefix = sys.argv[1]
cwd = sys.argv[2]
args = sys.argv[3:]

... (PATH setting code)

(REMOVE OLD LOGIC THAT CALLED os.chdir)

os.chdir(cwd)
sys.exit(subprocess.call(args, env=env))

Code complet ici: https://Gist.github.com/bdforbes/9ef59cd01c22acefc20c5c92bd9550ae

2. Ajoutez les clés de registre

Dans le registre, accédez à HKEY_CLASSES_ROOT\Directory\Background\Shell\ et ajoutez une clé Anaconda avec la valeur par défaut "Open Anaconda Prompt Here", avec une sous-clé command avec la valeur par défaut suivante:

C:\Users\bdforbes\Anaconda3\pythonw.exe C:\Users\bdforbes\Anaconda3\cwp2.py C:\Users\bdforbes\Anaconda3 "%V " cmd.exe "/K" C:\Users\bdforbes\Anaconda3\Scripts\activate.bat C:\Users\bdforbes\Anaconda3

Ajoutez les mêmes entrées à HKEY_CLASSES_ROOT\Directory\Shell\.

J'ai mis un .reg file here , il vous suffit de rechercher replace bdforbes et de le remplacer par le nom de votre compte Windows. Ne lancez pas de .reg fichier sans le vérifier d'abord!

enter image description hereenter image description here

3. Utilisez votre nouvel élément de menu contextuel

Faites un clic droit sur un dossier. Vous devriez voir la nouvelle entrée qui vous permettra d'ouvrir une nouvelle invite Anaconda.

enter image description here

5
bdforbes