The following files contains shebangs in the 3.10.0 source:
./src/ZODB/scripts/fsrefs.py:#!/usr/bin/env python2.3
./src/ZODB/scripts/fsstats.py:#!/usr/bin/env python2.3
./src/ZODB/scripts/fsoids.py:#!/usr/bin/env python2.3
./src/ZODB/scripts/repozo.py:#!/usr/bin/env python2.3
./src/ZODB/scripts/checkbtrees.py:#!/usr/bin/env python2.3
./src/ZODB/scripts/fstest.py:#!/usr/bin/env python2.3
./src/ZODB/scripts/fstail.py:#!/usr/bin/env python2.3
./src/ZODB/scripts/zodbload.py:#!/usr/bin/env python2.3
./src/ZODB/scripts/analyze.py:#!/usr/bin/env python2.4
./src/ZODB/scripts/netspace.py:#!/usr/bin/env python2.3
./src/ZODB/scripts/space.py:#!/usr/bin/env python2.3
./src/ZODB/scripts/migrate.py:#!/usr/bin/env python2.3
./src/ZEO/zeoctl.py:#!/usr/bin/env python2.3
./src/ZEO/scripts/cache_simul.py:#! /usr/bin/env python
./src/ZEO/scripts/parsezeolog.py:#!/usr/bin/env python2.3
./src/ZEO/scripts/zeopack.py:#!/usr/bin/env python2.3
./src/ZEO/scripts/timeout.py:#!/usr/bin/env python2.3
./src/ZEO/scripts/zeoup.py:#!/usr/bin/env python2.3
./src/ZEO/scripts/zeoserverlog.py:#!/usr/bin/env python2.3
./src/ZEO/scripts/zeoreplay.py:#!/usr/bin/env python2.3
./src/ZEO/scripts/zeoqueue.py:#!/usr/bin/env python2.3
Since the final scripts are generated by Setuptools, the shebangs in the above files seem useless.
Note that only the following scripts are installed via the 'console_scripts'
entry point mechanism:
fsdump = ZODB.FileStorag e.fsdump: main fsoids: main fsrefs: main fstail: Main repozo: main zeopack: main
fsoids = ZODB.scripts.
fsrefs = ZODB.scripts.
fstail = ZODB.scripts.
repozo = ZODB.scripts.
zeopack = ZEO.scripts.
runzeo = ZEO.runzeo:main
zeopasswd = ZEO.zeopasswd:main
zeoctl = ZEO.zeoctl:main
The shebangs make it possible to run the any of the scripts (e.g.,
during testing / development) without necessarily installing ZODB into a
Python environment.
I do find the '/usr/bin/environ' bit a pretty useless bit of
indirection, particularly when tied to versions of Python which are no
longer even supported by ZODB.