If I have packages installed from easy_install, the eggs are prepended to sys.path before the items in the PYTHONPATH variable.
Fo
Consider using the -S command-line option to suppress *.pth processing:
python -c 'import sys; print("\n".join(sys.path))'
python -S -c 'import sys; print("\n".join(sys.path))'
https://docs.python.org/3/library/site.html#site.main
You can also use -S with site.main() to delay *.pth processing until runtime, say to capture the original sys.path for appending:
export PYTHONPATH=$(
PYTHONPATH='' \
python -c 'import sys; \
sys.path.extend(sys.argv[1:]); old=list(sys.path); \
import site; site.main(); \
[ old.append(p) for p in sys.path if p not in old ]; \
sys.path=old; \
print ":".join(sys.path)' \
$EXTRA_PATH $ANOTHER_PATH)
python -S ... # using explicit PYTHONPATH
PYTHONPATHsite.main()PYTHONPATHpython -S is desirable for later runs only using $PYTHONPATHpython -S may or may not be desirable while setting PYTHONPATH (depending on if you need sys.path expanded before extending)