Each Python package’s
setup.cfg can make Python scripts callable from any directory, by adding them to your system PATH via the
On a typical Anaconda Python install, the shortcuts to these scripts are installed in a directory like
Make sure your
entry_points are set up correctly before running
pip install, or you will get the
Here is a simple example
addtwo.py, that we wish to run directly from console (in any directory) as
to get result
Note that the end user doesn’t even know they’re running a Python script.
#!/usr/bin/env python from argparse import ArgumentParser def addtwo(x: float) -> float: return x + 2 def main(): p = ArgumentParser(description='adds two to number') p.add_argument('x', help='number to add two to', type=float) P = p.parse_args() print(addtwo(P.x)) if __name__ == '__main__': main()
- For each function you wish to have be accessible from anywhere on the system be sure there is a function that handles console arguments as in the example above.
- add to
[options.entry_points] console_scripts = addtwo = addtwo:main addthree = addthree:main
where I assumed you also have a similar Python script
If you execute
pip install -e .before you’ve finished preparing the scripts, bad copies of the scripts are retained in the
bindirectory with a
.pyextension. Properly installed entry points do not have any file extension.
Fix this by going into your
~/miniconda3/bin or equivalent, and remove the
addtwo.py script there (where
addtwo is replaced by the name of your script).