[Discuss] Python script question

Dan Ritter dsr at tao.merseine.nu
Wed Aug 3 10:44:43 EDT 2011


On Wed, Aug 03, 2011 at 10:28:20AM -0400, Jerry Feldman wrote:
> A coworker of mine has a Python script set up as:
> #! $PATH_TO_PYTHON/python
> ... python code
> 
> It is not unusual to have commands like this. Mailman does this with
> several of its commands. The issue here is that he needs to use an
> environment variable to call the python interpreter. We certainly can do
> it a messy way:
> #! /bin/bash
> $PATH_TO_PYTHON/python foo.py
> 
> But this would require a wrapper script.
> 
> Or he can use an explicit path to the python interpreter.
> #! /usr/bin/python
> 
> The problem here is that the version of python he uses MUST be
> encapsulated in our company's product.
> #! /mnt/fubar/versionxyz/bin/python
> 
> But this will possibly differ with each release of our company's product
> since we maintain a number of releases here.  Some other solutions is to
> set up symlinks in the local directory. 
> 
> Any ideas on how to get the loader to expand the environment variable
> after the #!??

You can't do that, because it's parsed by the kernel, not the
shell.

Here's my suggestion:

create /mnt/fubar/product-current as a link to
/mnt/fubar/versionxyz/

and maintain that.

Now your script can start:

#!/mnt/fubar/product-current/bin/python

Alternatively, install your python script in
/mnt/fubar/versionxyz/scripts/

and start with:

#!../bin/python

(I just tested that, and it works.)

-dsr-

-- 
http://tao.merseine.nu/~dsr/eula.html is hereby incorporated by reference.
You can't fight for freedom by taking away rights.



More information about the Discuss mailing list