[Tutor] Very basic Python question
Dave Angel
davea at ieee.org
Sat Jun 27 13:17:52 CEST 2009
Daniel Sato wrote:
>
> Hi,
>
> Let me preface this by saying that I purchased O'Reilly's "Learn Python"
> yesterday and have no programming experience (I am a photographer by trade)
> except for a semester of what I think was BASIC on some old apple back in
> elementary school (circa 1992).
>
> I am not sure what details are relevant, so I will try and include as much
> as possible. I have a MacBook Pro running Mac OSX 10.5.6. I recently dl'ed
> MacPython 2.5, which installed Python 2.5.4 on my system.
>
> When I am in the terminal, I can run a module by typing python
> fullpath/to/script.py
>
> However, when I enter Python from the terminal, by typing python, I can no
> longer import items in this way unless the .py file is in my user folder
> /Users/Me. How can I change my settings so that I can import .py files from
> a separate directory such as /Users/Me/Documents/PyMods?
>
> Thank you.
>
> -daniel sato
>
>
(Note, I'm using Python2.6 on Windows, so I may not get this quite
right. But it'll be close)
When Python does an import, it has a search path to use, very similar to
the way the shell uses the 'path' variable. This search path may be
examined and modified, as sys.path
The interpreter knows how to find the modules and packages it was
installed with, but not how to find an arbitrary module you just wrote.
So you can either put your module in one of the standard places, or add
its actual location to the sys.path. Normally while you're
experimenting with the interpreter, you want to do the latter.
Actually, the interpreter looks one other place for an import, the
current working directory. So if you set the cwd to the location of the
script.py, it should be able to find it and anything else in the same
directory.
Naturally, if you have more than one interpreter, you'll want to be able
to load the proper one. I keep shell scripts in my path called python26
and python31 for the versions of python I normally use. If I were
running a system with a default version, I'd let the script python load
that one.
So you'd want to add a shell script into your path called python25 (once
per installation).
Then when you start an interactive session, you use
cd /fullpath/to/
python25
>>>>import script
>>>>import sys
>>>>sys.path
::Advanced techniques, for special circumstances:::
Now, there are some differences between python25, python26, and
python31. So the following may not be quite right, since I don't use
2.5 any more. But you can add your own directories to the intiial
sys.path using the pythonpath variable. And you can modify that
variable interactively, or with any python script you *can* load. So if
you want to have several directories of python scripts to be available
in a single session you can use either of those approaches.
More information about the Tutor
mailing list