On 1/10/14 2:38 PM, bryan.kardi...@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

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to