> Ok. I built the source on an openSUSE 11.0 system. I used 'sudo make > altinstll'. It created an executable /usr/local/bin/python3.0 file. > Nothing was touched in /usr/bin.
Ah, then you missed the fun part. Take a look at the install: target in the Makefile. > I need to start writing some code with Python 3. I want to write the > code in such a way that it can be easily shared with others with the > least difficulty and overhead as possible. How should I write the code > to enable this? What, if anything, should I assume about another > system's configuration? I don't quite understand the problem. Sharing code is very easy over the internet. You can upload it on PyPI (say), or mail it. So you must be asking for something else. > As someone suggested before, naming the files as '.py3' is probably a > bad idea in the long run. It also does not really solve the problem. > > I could use a shebang. But, what should it specify? If I use > 'python3.0', then that will soon be quite old. If I make up a link for > python3 -> python3.0, that would work, but then every other system that > is to run the code must that link also. However, I am thinking that > this would be the best long term answer. Well, this will be rejected. It might be a good medium-term answer, but it is a *bad* long-term answer. In the long term, Python 2 will disappear, and we are stuck with calling the interpreter python3. > If I write scripts for Python 3, another developer writes scripts for > Python 2, and a common customer wants to install both of our packages > onto a single machine, then what is the best plan for everyone to make > that happen with as little difficulty as possible? My recommendation is to use distutils, for a long-term answer. People will run "python3.0 setup.py install", and distutils' install_scripts will replace the shebang line with the actual path to Python 3.0. This has not only the advantage of continuing to work for 3.1; it has also the advantage that scripts installed into a private location will be run by the correct interpreter (rather than relying on the interpreter being in /usr/bin, or on PATH). For "quick" sharing, the shebang line "#!/usr/bin/env python3.0" will be enough. When Python 3.1 gets released, you may find yourself writing scripts that run only on Python 3.x for x>=1 (i.e. won't run on 3.0, because you use a new feature in 3.1). In that case, presence of a python3 executable won't help, either. Regards, Martin -- http://mail.python.org/mailman/listinfo/python-list