F. Petitjean wrote:
Le 13 Jan 2005 21:58:36 -0800, mike kreiner a écrit :
I am having trouble importing a module I created. I'm running PythonWin on Windows XP if that helps. I saved my module in a folder called my_scripts in the site-packages directory. I edited the python path to include the my_scripts folder (it now reads C:\Python23\Lib;C:\Python23\DLLs;C:\Python23\Lib\lib-tk;C:\Python23\Lib\site-packages\my_scripts).
Not a very godd idea to mess with the python path
Furthermore it should not be necessary!
When I try to import the module, I get this error:
from PolyDraw import *
Traceback (most recent call last): File "<interactive input>", line 1, in ? ImportError: No module named PolyDraw
OK, have your modifications to the path worked?
Try adding
import sys print sys.path
before the import statement to verify what Python is actually using as the path.
When I select Browse PythonPath from the tools menu, I'm able to locate my module, PolyDraw.py.
The problem goes away if I open PolyDraw.py from PythonWin, which I'm assuming is because opening the module makes my_scripts the current working directory. This is just a quick workaround, but I'd like to know how to fix the problem. Thanks.
A quick fix is to promote your my_scripts folder to be a python package, by creating a python module (file) named __init__.py right in the package directory. The content of __init__.py can be for instance
The __init__.py can actually be completely empty, but surely then you'd have to import the module by
from my_scripts import PolyDraw
which is a little less convenient. It would be easier (and also easier than modifying the PYTHONPATH) just to create a .pth file (say C:\Python23\Lib\site-packages\my.pth) containing the single line
my_scripts
and that should ensure that the directory really *is* on your path.
The *name* of the .pth file is irrelevant, and you can actually have several lines naming different directories (whose paths can be absolute, or relative to the directory containing the .pth file).
Obviously you should check that the path's setting is correct using the technique allowed above.
#!/usr/bin/env pythonLet's not recommend this as a way around the problem - let's find out what the problem actually *is* and fix it ;-)
# -*- coding: Latin-1 -*-
"""
my_scripts package containing miscellaneous modules PolyDraw
....
"""
__author__ = 'mike kreiner'
To import from this package the syntax is from my_scripts import PolyDraw
regards Steve -- Steve Holden http://www.holdenweb.com/ Python Web Programming http://pydish.holdenweb.com/ Holden Web LLC +1 703 861 4237 +1 800 494 3119
-- http://mail.python.org/mailman/listinfo/python-list