如何在INSTALLED_APPS中的虚拟环境中引用通过pip安装的软件包?

时间:2014-05-18 19:42:48

标签: django

当我通过python manage.py startapp polls在Django项目中创建一个新应用时,我只需将其添加到我已安装的应用列表中:

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'survy',
)

然而,当我通过PIP pip install django-countriesdjango-countries等应用程序安装到虚拟环境中时,是否有不同或更好的方法将其添加到已安装的应用程序列表中?

我一直在使用相同的方法,我认为这可能是错误的,因此在我的另一个问题中导致问题。

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'survey',
    'django_countries',
)

这没有给我任何错误,但我不确定它是否正常工作。

注意:根据pip pagethis SO question,该包名称为django-countries,但我认为它应该在INSTALLED_APPS中称为django_countries

1 个答案:

答案 0 :(得分:2)

不,你是对的。您只需添加模块名称,就好像它是您的模块之一。

Django在你的Python路径中搜索应用程序,它会找到它找到的第一个模块。由于Django第三方通常安装在site-packages(在您的情况下是virtualenv之一),并且此文件夹位于您的Python路径中,因此Django将照常使用这些模块。