Input Error issues - Windows 7
Ned Batchelder
ned at nedbatchelder.com
Fri Jan 10 14:48:10 EST 2014
On 1/10/14 2:38 PM, bryan.kardisco at gmail.com wrote:
> I'm new to python and am trying to just get some basic stuff up and going.
Welcome!
>
> I have a very basic module called foo
>
> It's in the following directory on my machine
>
> C:\workspace\PyFoo\src\foo
> In that folder is __init__.py (created automatically) and foo.py
>
> foo.py looks like this
>
> class foo():
> def __init__(self, name, number):
> self.name = name
> self.number = number
> def getName(self):
> return self.name
> def getNumber(self):
> return self.number
>
>
> If I open up command prompt and do following it works:
>
> C:\workspace\PyFoo\src\foo>python
> Python 3.3.3 (v3.3.3:c3896275c0f6, Nov 18 2013, 21:18:40) [MSC v.1600 32 bit (Intel)] on win32
> Type "help", "copyright", "credits" or "license" for more information.
>>>> from foo import foo
>>>> f = foo(1,2)
>>>> f.getName()
> 1
>>>>
>
>
> However, if I run this from C:\ I get the following
>
> C:\>python
> Python 3.3.3 (v3.3.3:c3896275c0f6, Nov 18 2013, 21:18:40) [MSC v.1600 32 bit (Intel)] on win32
> Type "help", "copyright", "credits" or "license" for more information.
>>>> from foo import foo
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> ImportError: No module named 'foo'
>>>>
>
>
> I thought, well maybe it's a system error
>
>>>> import sys
>>>> print(sys.path)
> ['', 'C:\\Python33', 'C:\\Python33\\Lib', 'C:\\Python33\\DLLs', 'C:\\workspace', 'C:\\Windows\\system32\\python33.zip',
> 'C:\\Python33\\lib\\site-packages']
>>>>
>
> C:\>echo %PYTHONPATH%
> C:\Python33;C:\Python33\Lib;C:\Python33\DLLs;C:\workspace
>
> However, that seems OK.
>
> Is there something I'm missing?
>
The PYTHONPATH contains the directories that will be searched for
modules and packages. Your package is called foo, and is in
c:\workspace\PyFoo\src. That directory is not on the Python path, and
it isn't the current directory. Therefore, your package can't be found
and imported.
BTW: writting getters like getName and getNumber is unusual in Python.
The much more common technique is to simply use the attribute: f.name
--
Ned Batchelder, http://nedbatchelder.com
More information about the Python-list
mailing list