Comment modifier PYTHONPATH sous Windows

Vous êtes ici parce que vous utilisez:

  1. Windows OS version 10+
  2. Python version 3.3+
  3. Anaconda3

Et vous souhaitez modifier votre fichier de manière PYTHONPATHpermanente.

TL; DR

  1. Aller aux C:\Users\\Anaconda3\Lib\site-packages
  2. Créer un fichier python37.pth
  3. Modifiez le fichier pour inclure ce C:\\Users\\\\my_module de ligne

La version longue; Faire lire

Prologue

Dans la plupart des cas, la modification PYTHONPATHde l'interface graphique des paramètres fera l'affaire. L'astuce est bien expliquée dans cette réponse Stack Overflow.

Si en premier lieu vous ne cherchez à modifier votre chemin que localement , cette réponse utile fera l'affaire.

Légèrement étendu Réf. 1

Si vous n'avez pas de C:\Users\\Anaconda3\Lib\site-packages, replace C:\Users\username> with the path to your Anaconda3.

Slightly Extended Item no. 2

If you are using Python3.7, create a file called python37.pth. Else create a file called pythont;.pth for whatever Python version you are using.

  • Not sure which version?

    Under C:\Users\\Anaconda3\ search for a file of the form python<XX>.dll. The indicates the version number you need for naming your .pth file.

  • Windows is super annoying and won’t let you create a file with a .pth suffix?

    There are such files in the C:\Users\\Anaconda3\Lib\site-packages folder. Copy one of them and edit the prefix.

  • Some places say you need to create a ._pth file instead of .pth?

    A ._pth file will completely replace your existing path. While a .pth file will append its content to the path you already have. You can find more information here.

Slightly Extended Item no. 3

Assuming the SuperCoolClass you wish to import is located at

C:\Users\\my_project_folder\my_awesome_file.py .

Then open your newly created pythont;.pth file with your favorite text editor (please don’t say it’s Vim) and add one line:

C:\\Users\\\\my_project_folder.

Yes, with those annoying double slashes \\ .

No, without quotes "" .

And that’s it.

Now you can import from anywhere, like a normal person:

from my_awesome_file import SuperCoolClass .

Epilogue

Nothing important to add here really.

I just hope my 2 hours of frustration + 1 hour of writing this post saved you some time.

Peace out.

Original text