'Django - cannot import name 'config' from 'decouple'
I'm trying to run this project locally but when i try manage.py makemigrations i keep getting the following error:
ImportError: cannot import name 'config' from 'decouple'
Here are my steps:
- Clone the repository from github
- Create a virtual environment
- Install the dependencies
I made some research but i found nothing about what could be generating that error. Can anyone help me out on this? Thanks in advance!I'm running Django 3.
Solution 1:[1]
You might have decouple installed in additional to python-decouple (two different packages).
If that is the case simply uninstall decouple
pip uninstall decouple
And ensure you have python-decouple installed
pip install python-decouple
Solution 2:[2]
It shows the error because you are not installed the module python-decouple
Just run pip install -r requirements.txt
If it won't work then try it in env
pip install python-decouple
Solution 3:[3]
I was using pipenv to create a virtual environment and run the Django project
pipenv install -r requiremnts.txt
pipenv shell
python manage.py runserver
Interestingly above method kept throwing error that it cannot import config from decouple
then I tried:
python -m venv myEnv
myEnv/Scripts/activate
pip install -r requirements.txt
python manage.py runserver
and this ran the project successfully. I didnt understand why this would happen as I am doing pretty much same just using pip instead of pipenv.
Solution 4:[4]
I encountered the same issue, and in my case, it was caused by a conflict between "decouple" and "python-decouple" packages (I had installed both of them by mistake). As the latter creates a file called "decouple.py" in the installation virtual environment, finding the package of the same name, this will confuse the Django app of which of the 2 decouple reference it will consider. To fix this I had to uninstall the "decouple" package with pipenv uninstall decouple and install the "python-decouple" package with pipenv install python-decouple.
...
class AutoConfig(object):
"""
Autodetects the config file and type.
Parameters
----------
search_path : str, optional
Initial search path. If empty, the default search path is the
caller's path.
"""
...
# A pré-instantiated AutoConfig to improve decouple's usability
# now just import config and start using with no configuration.
config = AutoConfig()
# Helpers
...
Solution 5:[5]
I struggled with this for a good hour, the fix was to close the current bash/terminal window and opening a new one.
Solution 6:[6]
After trying almost everything, installing the python-decouple for the whole system, as opposed to in an environment, worked for me. So left the virtual environment, installed python-decouple then activated back my environment again. It works for me.
Let me know if this helps.
Solution 7:[7]
The error happens because your python interpreter is looking for python-decouple package instead of decouple
Uninstall the existing package using this command
pip uninstall decouple
And then installpip install python-decouple
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | |
| Solution 2 | Pavan kumar |
| Solution 3 | Debojyoti Chatterjee |
| Solution 4 | |
| Solution 5 | decoder |
| Solution 6 | Odhiambo |
| Solution 7 | Shahbaz Zaidi |
