meesterguyperson
meesterguyperson

Reputation: 1884

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.

Upvotes: 12

Views: 30756

Answers (14)

Ramon
Ramon

Reputation: 97

Just had the same problem myself (cannot import python default libraries). Instead of filling in paths as suggested by others, I unchecked "Add content root to PYTHONPATH" and "Add source roots to PYTHONPATH" (under Run, Edit configurations, specific config). That solved it for me.

Upvotes: 0

S.Panta
S.Panta

Reputation: 1

Go to pyvenv.sfg file and then include system variable to true. It worked for me.

Upvotes: 0

Johnny
Johnny

Reputation: 51

After many trials using different answers, this is how I solved the problem.

Click terminal tab in your pycharm

pip install django 

Do the same thing for all other modules that pycharm is showing error message that it can't discover.

Upvotes: 0

Amit Kumar
Amit Kumar

Reputation: 1900

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.

Upvotes: 3

James Bellaby
James Bellaby

Reputation: 168

For me it seems that line 5 in a project_creator file for PyCharm is looking for "django" but the virtual env is installing "Django" (capital D).

I've not tried to find the file and adjust it (if it's at all possible) but I thought I'd put my 2 cents here for now :)

Upvotes: -1

ThisIsMyName
ThisIsMyName

Reputation: 917

For me the problem was a bit different. Interpreter was well configured, but my Pycharm root directory wasn't correct.

I work with the following Pycharm project structure :

/.idea/
/env/
/django-project-name/app1/
/django-project-name/app2/
/django-project-name/django-project-name/settings.py
/django-project-name/manage.py

You have two possibilities:

1 - You create a new django project directly in /django-project-name/ (easiest - /.idea/ is moved from / to /django-project-name/)

2 - Define a Sources forder

You have to go to the Pycharm Setting > Project: > Project Structure ; Then mark your project directory as "Sources" (just click on the django project folder and this click on your "Sources at the top").

Finally, restart Pycharm.

Upvotes: 1

Ailurus
Ailurus

Reputation: 275

Go to Preferences -> Libraries and Frameworks -> Django and add PYTHONPATH to Environment variables with value: $PYTHONPATH:/< your virtualenv site-packages directory >

Works for me.

Upvotes: 0

santosh kumar
santosh kumar

Reputation: 49

I was facing similar issue. Pycharm was not showing and django options. To configure I did the following things:

  • go to edit configuration(run/debug menu)
  • In script path provide your manage.py location
  • in parameters provide 'runserver'
  • in python interpreter provide python location inside your virtual env

And now you can run and debug the django project using pycharm.

Upvotes: 4

arctic_Oak
arctic_Oak

Reputation: 1024

If you install Django in your system without activating virtual environment then only pycharm will recognize imports. So, if you already installed Django inside some virtual environment then remove all those environments or Django from that environment and then without activating venv run command "pip install Django==version".

Why you need to remove all venv where you already installed Django?

If you don't and then run "pip install Django" then it will show that it's already installed. That's why you have to remove all venv.

After installing Django without activating virtual environment, you can create new virtual environment and do your job.

This is how I resolved this issue!

Upvotes: 0

Gregory
Gregory

Reputation: 7212

If you are using virtual environment, go

File > Settings > Project:PycharmProjects > Project Interpreter

and for the current project select the Python path inside your virtualenv at the select box. The path for your python will look similar to this:

~/PycharmProjects/your-project-path/venv/bin/python

Upvotes: 6

Jose Arrecio
Jose Arrecio

Reputation: 33

Just had the same problem, I went to External libraries -> interpreter ->site packages and "resyncronized" the forlder. django apperared. It seems to me it pycharm did notu update the project structure after I installed some packages.

Upvotes: 1

Dan Cornilescu
Dan Cornilescu

Reputation: 39814

PyCharm controls PYTHONPATH itself, it ignores whatever it gets from parent shell (I guess to keep a project's behaviour deterministic).

Check out the documentation for configuring the project's interpreter path: https://www.jetbrains.com/pycharm/help/installing-uninstalling-and-reloading-interpreter-paths.html

Upvotes: 0

meesterguyperson
meesterguyperson

Reputation: 1884

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.

Upvotes: 2

suselrd
suselrd

Reputation: 794

Make sure your run configuration is correctly pointing to the proper virtual environment. Go to Run menu -> Edit Configurations... Then select the Django Server configuration you are using, and edit it. Make sure its Python Interpreter is set correctly.

Upvotes: 0

Related Questions