【问题标题】:I think I'm installing Django, but it doesn't seem to be there我想我正在安装 Django,但它似乎不存在
【发布时间】:2018-02-01 14:00:32
【问题描述】:

神秘。我可能对 virtualenv 的理解不够充分,无法使用它。 我创建了一个我认为是虚拟环境的东西:

   pip3 -m venv myenv

   pip3 install --ignore-installed django~=2.0.0
   Collecting django~=2.0.0
     Using cached Django-2.0.1-py3-none-any.whl
   Collecting pytz (from django~=2.0.0)
     Using cached pytz-2017.3-py2.py3-none-any.whl
   Installing collected packages: pytz, django
   Successfully installed django-2.0.1 pytz-2017.3
   001b639f6f87:myenv admin$ ls
   bin  include  lib  pyvenv.cfg

那么,Django 在哪里?

实际上,这可能不是一个 virtualenv 问题。运行相同 非 venv 目录中的命令,结果相同:没有 Django。

所以,我认为,也许 Django 2.0 存在问题,我就是其中之一 不知道。让我们试试 1.11:

001b639f6f87:django-test admin$ pip3 install --ignore-installed
django~=1.11.0
Collecting django~=1.11.0
  Downloading Django-1.11.9-py2.py3-none-any.whl (6.9MB)
    100%
|███████████&
#9608;██████████&#
9608;█████████| 7.0MB 
108kB/s 
Collecting pytz (from django~=1.11.0)
  Using cached pytz-2017.3-py2.py3-none-any.whl
Installing collected packages: pytz, django
Successfully installed django-2.0.1 pytz-2017.3
001b639f6f87:django-test admin$ ls
001b639f6f87:django-test admin$ ls -l
001b639f6f87:django-test admin$ 

显然,对某些事情不清楚,但不确定问题出在哪里。

【问题讨论】:

  • 你检查过python3的站点包吗?

标签: python django python-3.x pip python-venv


【解决方案1】:

Django应该安装在/path/to/your/venv/lib/python3.x/site-packages/

您可以通过导入 django 然后检查 django.__file__ 在 Python shell 中进行检查。

>>> import django
>>> django.__file__
'/path/to/your/venv/lib/python3.x/site-packages/django/__init__.py'

请注意,Django 安装在哪里并不重要。关键是import django 在您激活虚拟环境后工作。

【讨论】:

  • 电脑上安装了python和django,但我不确定这是关键。
【解决方案2】:

实际上,安装 Django 的位置很重要。强烈建议使用虚拟环境。按如下方式进行:

如果您没有安装“virtualenv”,请先安装它。

sudo pip3 install virtualenv
  1. 如果没有 virtualenv,请安装它。
  2. virtualenv venv -p python3
  3. 现在您已经创建了一个名为“venv”的虚拟环境。
  4. source venv/bin/activate
  5. 现在。你会在终端上看到一个“venv”标签。这意味着您已经成功创建了虚拟环境并且您正在使用它。之后,您将安装的每个软件包都将位于 /venv 文件夹中。

使用虚拟环境有利于隔离,您的项目将是干净的,您将能够跟踪您在项目中使用的库。如果你决定销毁你的项目,你所要做的就是删除 venv 文件夹,它就干净了。

  1. pip3 freeze 命令显示虚拟环境中已安装的库。最初它是空的。
  2. pip3 install django
  3. 这将安装 django,如果您在第 6 步运行命令,您将在那里看到 django。

【讨论】:

  • 嗯。一些东西。这一切都始于我尝试遵循 djangogirls 教程。我不确定我是否错过了教程中的内容,和/或错过了配置问题。我确实确认我已经安装了 virtualenv,但是对于 python 2.7。我正在使用 python 3.6.3。按照您的指示并使用 pip3,已更正。我现在在 Dropbox 上有一个虚拟环境(目标是能够从家庭桌面和笔记本电脑访问它)。如果我理解正确,无论从哪台机器上,当我想在这个站点上工作时,我都需要运行 active 命令?
  • 当我说 Django 安装在哪里并不重要时,我不是很清楚。是的,在虚拟环境中安装它很重要。我的观点是包在虚拟环境中的位置(例如/path/to/venv/lib/python3.x/site-packages/)是一个并不重要的实现细节。
  • @AriDavidow 是的,在开始工作之前,您必须激活您的虚拟环境并查看终端上的 (venv) 标签。这将使您能够使用 django 和项目中的所有库。但是 Dropbox 并不是在多台机器上工作的好方法。您必须使用 git 之类的版本控制系统。我推荐 bitbucket 或 github。当你拥有 git 后,你对项目的所有更改都会被 git 跟踪,你可以在任何计算机上使用它。
  • @Alasdair 我刚刚重新阅读了您的答案并明白了您的意思:) 我想我只是专注于答案的“这并不重要......”部分:)跨度>
  • 是的——也许不是很明显,但我理解代码本身属于版本控制系统。 Dropbox 只是一个方便的本地“工作场所”,无需将代码拉到两台(或更多)机器上单独维护的开发环境中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-28
  • 1970-01-01
  • 1970-01-01
  • 2013-10-31
  • 2020-06-04
  • 1970-01-01
  • 2014-11-01
相关资源
最近更新 更多