Reputation: 9850
I have a Django app and I'm getting an error whenever I try to run my code:
Error: No module named django_openid
Let me step back a bit and tell you how I came about this:
python manage.py syncdb
and got the errorI googled the issue, and many people say it could be a path problem.
I'm confused as to how I go about changing the path variables though, and what exactly they mean. I found some documentation, but being somewhat of a hack-ish noob, it kind of goes over my head.
So my questions are:
Any input you would have would be great as this one is stumping me and I just want to get back to writing code :-)
Upvotes: 4
Views: 15061
Reputation: 239430
Do you really need to alter the path? It's always best to actually think about your reasons first. If you're only going to be running a single application on the server or you just don't care about polluting the system packages directory with potentially unnecessary packages, then put everything in the main system site-packages or dist-packages directory. Otherwise, use virtualenv.
The system-level package directory is always on the path. Virtualenv will add its site-packages directory to the path when activated, and Django will add the project directory to the path when activated. There shouldn't be a need to add anything else to the path, and really it's something you should never really have to worry about in practice.
Upvotes: 2
Reputation: 4667
The path
is just the locations in your filesystem in which python will search for the modules you are trying to import. For example, when you run import somemodule
, Python will perform a search for somemodule
in all the locations contained in the path (sys.path
variable).
You should check the path
attribute in sys
module:
import sys
print sys.path
It is just a regular list, sou you could append/remove elements from it:
sys.path.append('/path/to/some/module/folder/')
If you want to change your path for every python session you start, you should create a file to be loaded at startup, doing so:
PYTHONSTARTUP
environment variable and setting it to your startup file. E.g.: PYTHONSTARTUP=/home/user/.pythonrc
(in a unix shell);An example of a .pythonrc
could be:
import sys
sys.path.append('/path/to/some/folder/')
Upvotes: 6