manage.py - ImportError: No module named django

django, importerror, python

Solution

Since you just migrated to a UNIX environment, i suggest you migrate also to the best practices on such a platform too.

Download PIP

`sudo apt-get install python-pip`

Download and install virtualenv to set up a separate python virtual environment for your apps. This will allow you to run different flavors of django and other software without conflicts.

`sudo pip install virtualenv`

Create virtual environment by running. You will get a folder called myvirtualenvironment with a bin folder and a few executables inside it.

`virtualenv myvirtualenvironment --no-site-packages`

In order to tell your shell that you're working with that newly created virtual environment you need to run the activate script found in `/myvirtualenvironment/bin/`

`source myvirtualenvironment/bin/activate`

Now you can install django specifically to that virtual environment.

`pip install django` OR `pip install django==1.6` depending on what version you want to install. If you don't specify, the latest version will be installed.

Now, migrate your Django project inside of `/myvirtualenvironment/` and run the the runserver command.

Problem

I just ported a working django app from a windows system to ubuntu by just copying all the files to `/var/www/some/dir/djangoApp`. But now, when executing ``` python manage.py runserver 8080 ``` I get the Error: ``` ImportError: no module named django ``` I have already installed a fresh version of django with `python setup.py install` to `/usr/local/lib/python2.7/dist-packages/django/` and added the path to PYTHONPATH. The linux system in not maintained by me and has numerous python versions installed. calling `>>> import django` in the shell does not raise an ImportError. I'm very confused. Please help me! Here's the traceback from the console: ``` Traceback (most recent call last): File "manage.py", line 13, in <module> execute_from_command_line(sys.argv) File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 399, in execute_from_command_line utility.execute() File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 392, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 242, in run_from_argv self.execute(*args, **options.__dict__) File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 280, in execute translation.activate('en-us') File "/usr/local/lib/python2.7/dist-packages/django/utils/translation/__init__.py", line 130, in activate return _trans.activate(language) File "/usr/local/lib/python2.7/dist-packages/django/utils/translation/trans_real.py", line 188, in activate _active.value = translation(language) File "/usr/local/lib/python2.7/dist-packages/django/utils/translation/trans_real.py", line 177, in translation default_translation = _fetch(settings.LANGUAGE_CODE) File "/usr/local/lib/python2.7/dist-packages/django/utils/translation/trans_real.py", line 159, in _fetch app = import_module(appname) File "/usr/local/lib/python2.7/dist-packages/django/utils/importlib.py", line 40, in import_module __import__(name) ImportError: No module named django ```

Original source