【问题标题】:Django-admin creates wrong django version inside virtualenvDjango-admin 在 vi​​rtualenv 中创建了错误的 django 版本
【发布时间】:2015-08-11 10:48:04
【问题描述】:

我创建了一个新目录,一个 virtualenv 并在其中安装了一个 django-toolbelt。 django-version 应该是 1.8,但是当我调用“django-admin.py version”时,它显示的是 1.6。所以当我开始一个新项目时,它会创建一个 1.6.我认为 virtualenv 应该防止这种情况。我做错了什么?

编辑:我认为这与 PATH (?) 有关。就像它调用了错误的 django-admin 版本一样。我在 Windows 7 上。仍然不知道如何修复它。

【问题讨论】:

  • 你应该在 virtualenv 中安装 django。
  • 它应该在文件夹 venv\Lib\site-packages 中。它看起来像那里的正确版本。我在执行 pip install django-toolbelt 之前激活了 virtualenv。

标签: python django django-admin virtualenv


【解决方案1】:

我也遇到过这个问题。在官方文档中,我发现,在虚拟环境中,如果你使用命令'django-admin',它通常会在'/usr/local/bin'(Linux) 的PATH 中搜索'django-admin.py',它是一个符号链接另一个版本的 Django。这就是最终发生的原因。

所以有两种方法可以解决这个问题:

  1. 将当前版本的 django-admin(site-packages/django/bin/django-admin.py) 重新符号链接到 'usr/local/bin/django-admin' 或 'usr/local/bin/django-admin .py'
    提醒:这是一种全局方式,会影响到你的其他django项目,所以推荐第二种方式
  2. cd到your_virtual_env/lib/python3.x/site-packages/django/bin/(当然要激活你的虚拟环境),然后使用'python django-admin.py startproject project_name project_full_path'创建django项目

【讨论】:

    【解决方案2】:

    尝试将 Django 也安装到虚拟环境中:

    pip install django
    

    它应该安装最新版本,如果需要,您还可以指定特定版本(比如 1.8.2):

    pip install django==1.8.2
    

    无论哪种方式,您都将在您的虚拟环境中拥有正确版本的 Django,并且它应该可以按您的预期工作。

    您也可以使用以下命令查看您安装的版本:

    pip show django
    

    更新:

    您的虚拟环境中似乎安装了正确的版本,但由于某种原因,您的 Windows 7 使用系统 Django 安装,而您使用 manage.pydjango-admin.py 直接。但是,您可以改用 python manage.pypython django-admin.py,这似乎可以按预期工作(并使用 virtualenv Django 安装)。

    【讨论】:

    • 当我安装 django-toolbelt 时,它似乎在 virtualenv 中安装了正确的版本。但是 django-admin 命令似乎适用于我的系统范围的 1.6 版本。什么的。
    • 是的,我得到“要求已经满足”。我应该尝试升级吗?
    • @user3199840 你可以试试,但如果pip show 告诉你安装了 1.8.x,那么它可能也无济于事。不过这很奇怪。你激活了 virtualenv 吗?
    • 在激活的 venv 中时。 Pip show django 显示版本 1.8.3。所以猜测这意味着安装在 venv 中的版本是正确的版本。
    • 嗯,启动新应用程序很简单,只需创建一个包含空__init__.py 的新文件夹并将其添加到settings.INSTALLED_APPS,您真的不需要django-admin。跨度>
    【解决方案3】:

    我遇到了同样的问题。可能与您的 zsh/bash 设置有关。

    我意识到使用 zsh(我的默认设置)我会得到 django-admin 版本 1.11,尽管 Django 版本是 2.1!当我尝试用 bash 做同样的事情时,我会得到 django-admin 2.1 版(正确的版本)。肯定是配置错误。

    因此,我强烈建议您检查您的 zsh 或 bash 设置以检查您可能拥有的路径。

    【讨论】:

      【解决方案4】:

      为项目创建虚拟环境:

      $ mkdir cd my_project_folder
      $ cd my_project_folder 
      $ virtualenv venv
      $ source venv/bin/activate
      

      现在安装 django

      (venv) ~$ pip install django==1.8
      

      manage.py runserver in virtualenv using wrong django version

      pip / virtualenv / django installation issue

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-27
      • 1970-01-01
      • 2013-09-13
      相关资源
      最近更新 更多