23
03
2009
2009
Helper script for virtual Python setups
This is deprecated, use virtualenv instead.
Sometimes (too often, actually) I find myself setting up yet another collection of libraries for some specific Python project. For this I've half-baked a solution. The following script does the dirty-work. You just use the Python binary from install-dir/bin.
#!/bin/sh
# vpython-setup.sh
# Helper script for setting up virtual Python instances, usage instructions included
# (c) 2009 Atte Hinkka (first.last@iki.fi)
# This work ‘as-is’ we provide.
# No warranty, express or implied.
# We’ve done our best,
# to debug and test.
# Liability for damages denied.
#
# Permission is granted hereby,
# to copy, share, and modify.
# Use as is fit,
# free or for profit.
# On this notice these rights rely.
if [ -d "${1}" ]; then
DEST=$1
else
echo "Please create the Python env target dir and pass it as the first argument."
exit 0
fi
ORIG_PATH=`pwd`
cd ${1}
TARGET_PATH=`pwd`
cd $ORIG_PATH
export PYTHONPATH=${TARGET_PATH}:$PYTHONPATH
wget http://peak.telecommunity.com/dist/virtual-python.py
python virtual-python.py --prefix=${TARGET_PATH}
rm virtual-python.py
wget -O ${TARGET_PATH}/ez_setup.py http://peak.telecommunity.com/dist/ez_setup.py
touch ${TARGET_PATH}/bin/easy_install
echo "#!/bin/sh">>${TARGET_PATH}/bin/easy_install
echo "">>${TARGET_PATH}/bin/easy_install
echo "${TARGET_PATH}/bin/python ${TARGET_PATH}/ez_setup.py">>${TARGET_PATH}/bin/easy_install
chmod +x ${TARGET_PATH}/bin/easy_install
cd $TARGET_PATH
${TARGET_PATH}/bin/python ez_setup.py setuptools
cd $ORIG_PATH
cat >${TARGET_PATH}/init-python-env.sh <<\EOF
# Source this file to use this Python environment
# Additional libraries can be installed with ez_setup.py.
# Some libs need --prefix, use PYTHONPATH for that.
# I.e. python ez_setup.py SQLAlchemy==0.4.8
# or cd Django-1.0 && python setup.py install --prefix=$PYTHONPATH
#
# To use this environment in a script (or web app) add
EOF
echo "# #!${TARGET_PATH}/bin/python">>${TARGET_PATH}/init-python-env.sh
echo "# to the first line of the script.">>${TARGET_PATH}/init-python-env.sh
echo "# Sometimes it's also helpful to append ">>${TARGET_PATH}/init-python-env.sh
echo "# ${TARGET_PATH}/lib/python2.4/site-packages to PYTHONPATH.">>${TARGET_PATH}/init-python-env.sh
echo "">>${TARGET_PATH}/init-python-env.sh
echo "export PYTHONPATH=${TARGET_PATH}">>${TARGET_PATH}/init-python-env.sh
echo "export PATH=${TARGET_PATH}/bin:\$PATH">>${TARGET_PATH}/init-python-env.sh
echo ""
echo "See ${TARGET_PATH}/init-python-env.sh for additional instructions."