saneman wrote:
I have read that Python is a platform independent language. But on this page:

http://docs.python.org/tut/node4.html#SECTION004220000000000000000

it seems that making a python script executable is platform dependant:

2.2.2 Executable Python Scripts
On BSD'ish Unix systems, Python scripts can be made directly executable, like shell scripts, by putting the line


#! /usr/bin/env python
(assuming that the interpreter is on the user's PATH) at the beginning of the script and giving the file an executable mode. The "#!" must be the first two characters of the file. On some platforms, this first line must end with a Unix-style line ending ("\n"), not a Mac OS ("\r") or Windows ("\r\n") line ending. Note that the hash, or pound, character, "#", is used to start a comment in Python.

The script can be given an executable mode, or permission, using the chmod command:


$ chmod +x myscript.py



Are there any guidelines (API'S) that gurantees that the python code will be platform independent?


Generally you have to stay away from platform "dependent" constructs.  Esamples:

1) Use os.path methods everywhere in your code so you won't need to worry about os.path.sep (slash or backslash).

2) Use lowest common denominator when naming files to make your scripts work cross platform.

3) Stay away from os-specific calls/interfaces when possible. Manipulating file permissions, etc is always os-specific.

4) Use config files instead of relying on registry in Windows.

5) Stay away from code that depends on 32/64 bit objects or endian-ness of storage (struct objects). This is machine specific not OS specific but still counts.

6) If you have GUI, use something like wxWindows which provides cross platform GUI support.

7) Be careful using non-Python libraries (C-libraries) should be done with care to make sure that the library is available for all target operating systems.

8) using os.system or the subsystem module must be done with much care and probably won't be cross platform compatible.

Hope the suggestions help.

-Larry
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to