我正在尝试在本地运行这个manage.py makemigrations
项目,但是当我尝试时,我不断收到以下错误:
ImportError: cannot import name 'config' from 'decouple'
这是我的步骤:
- 从 github 克隆存储库
- 创建虚拟环境
- 安装依赖项
我做了一些研究,但我没有发现什么可能会产生该错误。谁能帮我解决这个问题?在此先感谢!我正在运行 Django 3。
我正在尝试在本地运行这个manage.py makemigrations
项目,但是当我尝试时,我不断收到以下错误:
ImportError: cannot import name 'config' from 'decouple'
这是我的步骤:
我做了一些研究,但我没有发现什么可能会产生该错误。谁能帮我解决这个问题?在此先感谢!我正在运行 Django 3。
除了python-decouple(两个不同的包)之外,您可能还安装了decouple 。
如果是这种情况,只需卸载解耦
pip uninstall decouple
并确保您安装了python -decouple
pip install python-decouple
它显示错误,因为您没有安装模块 python-decouple 只需运行pip install -r requirements.txt
如果它不起作用,请在 env 中尝试
pip install python-decouple
我正在使用 pipenv 创建一个虚拟环境并运行 Django 项目
pipenv install -r requiremnts.txt
pipenv shell
python manage.py runserver
有趣的是,上面的方法一直抛出错误,它不能从解耦中导入配置
然后我尝试了:
python -m venv myEnv
myEnv/Scripts/activate
pip install -r requirements.txt
python manage.py runserver
这成功地运行了项目。我不明白为什么会发生这种情况,因为我只是使用 pip 而不是 pipenv。
我为此苦苦挣扎了一个小时,解决方法是关闭当前的 bash/终端窗口并打开一个新窗口。
我遇到了同样的问题,就我而言,这是由“解耦”和“python-decouple”包之间的冲突引起的(我错误地安装了它们)。由于后者在安装虚拟环境中创建了一个名为“decouple.py”的文件,找到了同名的包,这将混淆 Django 应用程序将考虑 2 个解耦引用中的哪一个。为了解决这个问题,我必须卸载“解耦”包pipenv uninstall decouple
并安装“python-decouple”包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
...
在尝试了几乎所有事情之后,为整个系统安装 python-decouple,而不是在环境中,对我有用。所以离开了虚拟环境,安装了 python-decouple 然后再次激活了我的环境。这个对我有用。
让我知道这是否有帮助。