How to add to the PYTHONPATH in Windows, so it finds my modules/packages?
You know what has worked for me really well on windows.
My Computer > Properties > Advanced System Settings > Environment Variables >
Just add the path as C:\Python27 (or wherever you installed python)
OR
Then under system variables I create a new Variable called PythonPath
. In this variable I have C:\Python27\Lib;C:\Python27\DLLs;C:\Python27\Lib\lib-tk;C:\other-folders-on-the-path
This is the best way that has worked for me which I hadn't found in any of the docs offered.
EDIT: For those who are not able to get it,
Please add
C:\Python27;
along with it. Else it will never work.
Python path on windows
This answer describes step-by-step an approach that worked for me. However, as eryksun notes in the comment, the additional variable should not be named PYTHONPATH
. I renamed it PYTHON
, which works.
Strangely, adding the paths directly to the PATH variable did NOT work.
Add folder to PYTHONPATH programmatically
If you only want to change it for the execution of the current script, you can do it simply by assigning (or changing an existing) value in the os.environ
mapping. The code below is complicated a bit by the fact that I made it work even if os.environ[PYTHONPATH]
isn't initially set to anything (as is the case on my own system).
import os
from pathlib import Path
PYTHONPATH = 'PYTHONPATH'
try:
pythonpath = os.environ[PYTHONPATH]
except KeyError:
pythonpath = ''
print('BEFORE:', pythonpath)
folder = Path(__file__).resolve().parent.joinpath('code')
print(f'{folder=}')
pathlist = [str(folder)]
if pythonpath:
pathlist.extend(pythonpath.split(os.pathsep))
print(f'{pathlist=}')
os.environ[PYTHONPATH] = os.pathsep.join(pathlist)
print('AFTER:', os.environ[PYTHONPATH])
Permanently add a directory to PYTHONPATH?
You need to add your new directory to the environment variable PYTHONPATH
, separated by a colon from previous contents thereof. In any form of Unix, you can do that in a startup script appropriate to whatever shell you're using (.profile
or whatever, depending on your favorite shell) with a command which, again, depends on the shell in question; in Windows, you can do it through the system GUI for the purpose.
superuser.com
may be a better place to ask further, i.e. for more details if you need specifics about how to enrich an environment variable in your chosen platform and shell, since it's not really a programming question per se.
Python - add PYTHONPATH during command line module run
For Mac/Linux;
PYTHONPATH=/foo/bar/baz python somescript.py somecommand
For Windows, setup a wrapper pythonpath.bat
;
@ECHO OFF
setlocal
set PYTHONPATH=%1
python %2 %3
endlocal
and call pythonpath.bat
script file like;
pythonpath.bat /foo/bar/baz somescript.py somecommand
Add a directory to Python sys.path so that it's included each time I use Python
Simply add this path to your PYTHONPATH environment variable. To do this, go to Control Panel / System / Advanced / Environment variable, and in the "User variables" sections, check if you already have PYTHONPATH. If yes, select it and click "Edit", if not, click "New" to add it.
Paths in PYTHONPATH should be separated with ";".
Related Topics
Correct Way to Write Line to File
Deploying a Minimal Flask App in Docker - Server Connection Issues
Create a Dictionary With Comprehension
Find the First Instance of a Nonzero Number in a List in Python
Why Can't Python Parse This Json Data
How to Parse Data in Json Format
How to Install Pygame on Python Via Pip (Windows 10)
Regexp Finding Longest Common Prefix of Two Strings
How to Print Instances of a Class Using Print()
How to Download a File Over Http
Is False == 0 and True == 1 an Implementation Detail or Is It Guaranteed by the Language
Multiprocessing VS Threading Python
Difference Between Class and Instance Attributes
Check If Multiple Strings Exist in Another String
What Is the Python "With" Statement Designed For
Filter Pandas Dataframe by Substring Criteria
Selenium in Python: Nosuchelementexception: Message: No Such Element: Unable to Locate Element