Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pycharm is not recognizing django, even though it is installed correctly. Why?

I've got my project set up under a native virtual environment in 3.4 and have had it that way for a while and had it working fine. But for some reason, I am now having issues with running my project through Pycharm. Just to check that everything was set up properly, I did the following:

>>> import sys
>>> sys.path
>>> import django

I can confirm that PROJECT/lib/python3.4/site-packages is included in the path and that Django is installed in this path.

However, when I attempt to run the project through Pycharm I get ImportError: No module named 'django'. I added the following to the Django's manage.py to troubleshoot:

sys.stdout.write(', '.join(sys.path))

The site-packages directory is nowhere to be found. Next, I went to "Settings > Project Interpreter" to make sure I had the correct interpreter chosen. It lists Python 3.4 under the virtual environment and includes Django as the first of the installed packages.

My question, what the heck, Pycharm? The virtual environment is clearly set up correctly. The path is correct from the python terminal and Pycharm itself recognizes all the packages from the virtual environment under it's project interpreter section. Why then, when I actually run the project, does Pycharm stupidly decide to forget to run the project using the virtual environment and not use the correct python path? Little frustrated here. Would appreciate any suggestions.

like image 556
meesterguyperson Avatar asked Jul 01 '15 13:07

meesterguyperson


People also ask

How do I enable Django in PyCharm?

To enable Django support, follow these steps: Open the project Settings/Preferences dialog ( Ctrl+Alt+S ) and navigate to the Languages & Frameworks | Django page. Make sure that the checkbox Enable Django support is selected. Apply changes (if any) and close the dialog.

How does PyCharm detect Django?

If you cannot print the Django version from the python console in Pycharm, go to settings>Project:project_name>project Interpreter and from the list of installed packages see the installed Django and it's version for that project. Save this answer. Show activity on this post. You can run pip freeze too.

Is Django already installed in PyCharm?

Step 1: Open Your PyCharm and Click on Create New Project. Step 2: Select Your Directory and then give a name to your project and then Click on Create. Step 3 : Then Check if Django is installed or not in your Computer. If it is Already installed then you will see the Django version installed in Your Computer.

How do you check the Django is installed or not?

After the installation has completed, you can verify your Django installation by executing django-admin --version in the command prompt.


2 Answers

Only thing that I could thing to do to solve this, at least for now, was to go into Run/Debug Configurations and set the PYTHONPATH environment variable manually to include the site-packages directory where everything is installed. Once this was done, everything worked fine. Still no clue why this would be there in the terminal but not be set in Pycharm when I'm using the same venv for both. Nor does it make any sense to me why this seemed to happen all of a sudden. Very odd.

like image 98
meesterguyperson Avatar answered Nov 15 '22 23:11

meesterguyperson


The django version in local might not be the same as to which is saved into virtual environment. In order to resolve this, it is necessary that interpretor in intellij should point to python file saved into virtual environment. In order to do this performa following actions:

  1. Move into project interpretor settings in Pycharm. (command + ',')
  2. In Project Interpretor option, give the path of python3 which is present inside bin directory inside your virtual env where project is located.
  3. Applying these changes should remove the errorenter image description here

  4. In the above pic, highlighted text shows where python binary file is present.

like image 32
Amit Kumar Avatar answered Nov 16 '22 00:11

Amit Kumar