2

根据文档,如果 Django 是手动安装的,python setup.py install则需要手动删除该目录。

我通过从 Shell 运行它找到了 Django 的安装位置

python -c "import sys; sys.path = sys.path[1:]; import django; print(django.__path__)"

并从中删除了 django 目录/usr/local/lib/python2.7/dist-packages/django

此后,我尝试以自动方式安装 1.4.1:

sudo pip install Django

令人惊讶的是它拒绝安装它:

Requirement already satisfied (use --upgrade to upgrade): Django in /usr/local/lib/python2.7/dist-packages
Cleaning up...

所以我别无选择,只能这样做,即使文档没有反映这一点。

sudo pip install Django --upgrade

日志:

Downloading/unpacking Django
  Downloading Django-1.4.1.tar.gz (7.7Mb): 7.7Mb downloaded
  Running setup.py egg_info for package Django

Installing collected packages: Django
  Found existing installation: Django 1.4
    Uninstalling Django:
      Successfully uninstalled Django
  Running setup.py install for Django
    changing mode of build/scripts-2.7/django-admin.py from 644 to 755

    changing mode of /usr/local/bin/django-admin.py to 755
Successfully installed Django
Cleaning up...

似乎文档没有提到 django 文件不仅在,/python2.7/dist-packages/django而且在/usr/local/bin/django-admin.py

我想知道我这样做是否正确,因为文档明确警告:

如果您使用这种安装技术,首先删除任何现有的 Django 安装尤为重要。否则,您可能会得到一个损坏的安装,其中包含以前版本的文件,这些文件已经从 Django 中删除。

4

2 回答 2

1

一切还好。

通常,/usr/local/bin 中只有一个符号链接。

于 2012-08-05T11:53:56.350 回答
0

我正在经历这种混乱,这是由于 Django 文档中关于如何安装 Django 的语言不足造成的。请注意,他们确实说过,如果您使用过 python setup.py,那么您必须手动从“site-packages”中删除 Django 内容——而不是像 Kave 那样从“dist-packages”中删除。

您显然可以通过将 Django 拖到站点包中手动安装它(如果您还没有通过 PIP 或 EasyInstall 安装它)。

他们说,如果您使用过 PIP 或 EasyInstall,那么您可以让这些程序为您处理删除。由于 Kave 建议的原因,这可能意味着您在这种情况下不敢进行手动删除。

如果有 Django 的人愿意写作,就好像单词具有精确的含义一样。

我现在不能回去尝试在以前的版本上安装 1.4,因为 1.4 是我开始使用的版本。但是 Kave,也许你和我一样,不记得你是如何安装以前的版本的。那时您可能使用过 EasyInstall 甚至 PIP,从而导致 Django 文件夹被放置在 dist-packages 而不是 site-packages 中。

我在我的旧 Django 版本的 dist-packages 文件夹中找到了一个“egg”信息文件。EasyInstall 使用鸡蛋;简要查看 setup.py 文档表明它没有。

于 2013-09-19T07:44:34.543 回答