Shebang or Hashbang for modules or not?
Jorgen Grahn
grahn+nntp at snipabacken.dyndns.org
Thu Apr 19 12:46:09 EDT 2007
On Fri, 13 Apr 2007 22:46:03 +0200, Bruno Desthuilliers <bdesth.quelquechose at free.quelquepart.fr> wrote:
> Jorgen Grahn a écrit :
...
>> If you distribute a
>> Python program to Unix users in that form, they may not want to know
>> or care which language it's written in. Especially if you decide, a
>> few releases later, that you want to switch to Perl or something.
>
> <troll>
> No one in it's own mind would decide to switch from Python to Perl !-)
> </troll>
I was trolling a bit, too ;-)
Actually, it made sense in my case. It was a typical Perl task -- a
filter regex-parsing a huge (a few hundred megabytes) text file.
Rewriting it in Perl for speed was faster and more readable than
rewriting it in Python for speed.
> More seriously, and as far as I'm concerned, when I want to make a
> python script (by opposition to a python 'module') available as a unix
> command, I either use a symlink or a shell script calling the python
> script.
A symlink yes, but a shell script? Wouldn't it be easier to write a
one-liner (well, two-liner) Python script in that case?
>>>>I'm used to having a
>>>>shebang in every .py file
>>>
>>>An encoding declaration might be more useful IMHO !-)
...
>> I always use both.
>
> Even in modules ?????
Yes, for a few reasons:
- file(1) can tell it's Python source
- I tend to leave unit tests in my modules
- I just started doing that when I first tried Python;
it's part of my mental boilerplate
I don't claim they are good reasons. And since I strongly dislike
setting the execute bit on things that aren't executable, I should
probably stop using the shebang everywhere, too ...
/Jorgen
--
// Jorgen Grahn <grahn@ Ph'nglui mglw'nafh Cthulhu
\X/ snipabacken.dyndns.org> R'lyeh wgah'nagl fhtagn!
More information about the Python-list
mailing list