Python Environment Utils is a set of command line tools to provide information about the Python folder layout.
You might find these useful just to quickly check where the python executable or scripts directory is, or maybe you would like the information for use in a shell script.
These command line tools are simply wrappers around functions
from sys and
sysconfig. The command line tools
will be installed in the Scripts
directory for your environment if you install Python Environment Utils
with pip.
Look for functions in sys and
sysconfig that match the name of the command
after removing the pye_
prefix (i.e. the command pye_prefix
corresponds to the prefix
function in sys.
Install the Python Environment Utils in each Python environment or virtual environment you wish to have the utils available in.
pip install pyenvutils
A one line function for each command is in pyenvutils.py
.
pyproject.toml
specifies the command and the Python function to execute
when the command is issued from the command line.
Here is an excerpt from pyproject.toml
showing how py_sysconfig
and pye_scripts
are implemented:
pye_sysconfig="sysconfig:_main"
pye_scripts ="pyenvutils.pyenvutils:scripts"
A tool called flit builds the
python install package. When the package is installed with pip the command
line programs will be installed in the scripts directory. After you install
Python Environment Utils, you can run pye_scripts
to locate the scripts directory.
In Windows PowerShell or in Bash run:
ls $(pye_scripts)
to see all the commands available in your Python installation.
Each command is shown below, and sample output for a Python installed at C:\python38-32
:
Output:
Platform: "win32"
Python version: "3.8"
Current installation scheme: "nt"
Paths:
data = "c:\python38-32"
include = "c:\python38-32\Include"
platinclude = "c:\python38-32\Include"
platlib = "c:\python38-32\Lib\site-packages"
platstdlib = "c:\python38-32\Lib"
purelib = "c:\python38-32\Lib\site-packages"
scripts = "c:\python38-32\Scripts"
stdlib = "c:\python38-32\Lib"
Variables:
BINDIR = "C:\Python38-32"
BINLIBDEST = "c:\python38-32\Lib"
EXE = ".exe"
EXT_SUFFIX = ".cp38-win32.pyd"
INCLUDEPY = "c:\python38-32\Include"
LIBDEST = "c:\python38-32\Lib"
SO = ".cp38-win32.pyd"
VERSION = "38"
abiflags = ""
base = "c:\python38-32"
exec_prefix = "c:\python38-32"
installed_base = "c:\python38-32"
installed_platbase = "c:\python38-32"
platbase = "c:\python38-32"
prefix = "c:\python38-32"
projectbase = "C:\Python38-32"
py_version = "3.8.10"
py_version_nodot = "38"
py_version_short = "3.8"
srcdir = "C:\Python38-32"
userbase = "C:\Users\dougr\AppData\Roaming\Python"
c:\python38-32\Scripts
c:\python38-32
c:\python38-32
c:\python38-32\Include
c:\python38-32\Lib\site-packages
c:\python38-32\Lib\site-packages
c:\python38-32\Lib
['C:\\Python38-32\\Scripts\\pye_path.exe', 'C:\\Users\\dougr\\OneDrive\\doug\\codingprojects\\pydir\\%PYTHONPATH%', 'C:\\Users\\dougr\\Doug Ransom Financial Services\\operations - Documents\\scripts\\bulk mutual funds', 'c:\\python38-32\\python38.zip', 'c:\\python38-32\\DLLs', 'c:\\python38-32\\lib', 'c:\\python38-32', 'c:\\python38-32\\lib\\site-packages', 'c:\\python38-32\\lib\\site-packages\\win32', 'c:\\python38-32\\lib\\site-packages\\win32\\lib', 'c:\\python38-32\\lib\\site-packages\\Pythonwin']
c:\python38-32
c:\python38-32
c:\python38-32
c:\python38-32\python.exe
namespace(cache_tag='cpython-38', hexversion=50858736, name='cpython', version=sys.version_info(major=3, minor=8, micro=10, releaselevel='final', serial=0))
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)
sys.int_info(bits_per_digit=15, sizeof_digit=2)
sys.hash_info(width=32, modulus=2147483647, inf=314159, nan=0, imag=1000003, algorithm='siphash24', hash_bits=64, seed_bits=128, cutoff=0)
50858736
win32
sys.version_info(major=3, minor=8, micro=10, releaselevel='final', serial=0)
3.8-32