Django -无法从“去耦”导入名称“config”

68bkxrlz  于 2023-08-08  发布在  Go
关注(0)|答案(8)|浏览(138)

我试图在本地运行this项目,但当我尝试manage.py makemigrations时,我不断得到以下错误:

ImportError: cannot import name 'config' from 'decouple'

字符串
以下是我的步骤:
1.从github克隆仓库
1.创建虚拟环境
1.安装依赖项
我做了一些研究,但我没有发现什么可能产生的错误。有人能帮我吗?提前感谢!我正在运行Django 3。

3hvapo4f

3hvapo4f1#

您可能在python-decouple之外安装了decouple(两个不同的软件包)。
如果是这种情况,只需卸载**去耦 *

pip uninstall decouple

字符串
并确保安装了python-decouple

pip install python-decouple

gfttwv5a

gfttwv5a2#

发生错误是因为Python解释器正在查找python-decouple包而不是decouple
使用以下命令pip uninstall decouple卸载现有软件包
然后安装
pip install python-decouple

xnifntxz

xnifntxz3#

它显示错误,因为你没有安装模块python-decouple只是运行pip install -r requirements.txt如果它不会工作,然后尝试它在env
pip install python-decouple

wooyq4lh

wooyq4lh4#

我使用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。

roqulrg3

roqulrg35#

我遇到了同样的问题,在我的例子中,它是由“去耦”和“python-去耦”包之间的冲突引起的(我错误地安装了这两个包)。由于后者在安装虚拟环境中创建了一个名为“decouple.py“的文件,找到了同名的包,这将使Django应用程序混淆它将考虑2个解耦引用中的哪一个。为了解决这个问题,我不得不用pipenv uninstall decouple卸载“去耦”包,用pipenv install python-decouple安装“python-去耦”包。

...

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
...

字符串

nbnkbykc

nbnkbykc6#

我为此挣扎了一个好小时,修复是关闭当前的bash/终端窗口,并打开一个新的。

kkih6yb8

kkih6yb87#

在尝试了几乎所有的东西之后,为整个系统安装Python解耦,而不是在一个环境中,对我来说很有效。所以离开了虚拟环境,安装了python-decouple,然后再次激活我的环境。对我很有效
如果有帮助就告诉我。

j13ufse2

j13ufse28#

它显示错误,因为你没有安装模块python-decouple只需运行pip卸载去耦然后尝试
pip install python-decouple它为我工作

相关问题