如何安装适用于Python 3.x的Django?


32

我使用以下命令安装了Django:

sudo apt-get install python-django

并且安装了1.5.4-1ubuntu1版本。Django文档说,从1.5版开始,Django支持Python3。但是,当我运行python 3解释器并尝试导入Django时,它说没有这样的模块。我尝试寻找Django的python3版本,但是不存在这样的软件包。django如何在python3上工作?我更喜欢使用ubuntu软件包,而不是手动安装。


1
看看askubuntu.com/questions/666933/…为我工作... :)

Answers:


38

我强烈建议避免pip3在系统站点包中安装东西。我之前已经提出过这些论点,但我会给您注意:

  • 系统更新破坏了一切
  • 安装apt软件包可能会覆盖pip安装的内容
  • 版本冲突
  • 发行升级是无法预测的混乱。说真的 我已经失去了这些。

我强烈建议使用virtualenv。无论走到哪里,这都是一个巨大的痛苦,但是一旦完成设置,就可以在完全控制的情况下拥有一个完整的Python环境。这确实意味着需要做更多的工作(您必须检查内容以进行更新,pip还没有真正的帮助),但是您不必担心Ubuntu的所作所为。

每个站点都有一个环境(仅位于一个名为的子目录中venv)。曾经有一段时间,包括我在内的某些人更喜欢在多个站点之间共享他们的环境。我发现这在发布更新方面更容易维护,但是某些站点可能很脆弱或需要旧版本,从而使整个环境陷入困境。YMMV。

就安装它而言,只是为了打我一下,virtualenv还没有针对Python 3打包,因此我们必须使用pip3

$ sudo pip3 install virtualenv
...

$ virtualenv-3.3 myenv
Using base prefix '/usr'
New python executable in myenv/bin/python3
Also creating executable in myenv/bin/python
Installing setuptools, pip...done.

$ source myenv/bin/activate  # This is important!

现在,您的bash PS1应该已经预装好了,(myenv)以使您知道自己处在不同的环境中。我们可以测试环境以检查我们使用的是正确的版本(不使用系统版本作为启动器):

$ python --version
Python 3.3.2+
$ which python pip 
/home/oli/Desktop/myenv/bin/python
/home/oli/Desktop/myenv/bin/pip

然后您就可以继续进行,就好像您是宇宙的主人一样。您不需要root即可使用pip,也无需指定pip3。只是更加友好。

$ pip install django umemcache
...

如果要使用类似的东西uwsgi来托管它(应该),请使用其-H标志(或home config参数)来告诉它Python环境的位置。

为了简化开发,您可以自动“挂载”您的virtualenv环境。那里有很多脚本,但是这是我的(它位于我的底部~/.bashrc

export VENVDIR="/web"
export VENVDIR_VENV="$VENVDIR/venv"

venvcd() {
        wd=$(pwd)
        [[ $wd == $VENVDIR/* || $wd == $VENVDIR ]] && wasin=true || unset wasin

        builtin cd "$@"

        wd=$(pwd)
        if [[ $wd == $VENVDIR/* || $wd == $VENVDIR ]]; then
                source $VENVDIR_VENV/bin/activate
        else
                [ $wasin ] && deactivate
        fi
}
alias cd="venvcd"

cd .

每当我cd进入/web(存储所有开发网站的位置)时,它都会为我安装virtualenv。请注意,我所有站点只有一个环境,因此只有在您执行类似操作时,这才适合您。还有许多其他方式可以做类似的事情


18

我弄清楚了如何使用pip。原来我需要pip3

sudo pip3 install Django

做到了。

您可能需要通过以下方式获取pip3:

sudo apt-get install python3-pip

3

Django for Python3现在已添加。因此,只需输入终端:

apt-get install python3-django


1
E: Unable to locate package python3-django
乔纳森

1
它不适用于Ubuntu 14.04 Trusty Tahr。
Anwar

1
我不建议使用system-repos django。如果有更新,则更新后您使用的某些功能可能无法正常工作。如上所示,最好使用virtual-env方法。
2015年

我使用的是最新的Debian(最新的8),而Django 1.7.11(即EOL!)是存储库中可用的最新版本。看来Ubuntu具有受支持的版本(1.8.7。)我不知道为什么Debian这么落后?
Hydraxan14年

3

伙计们,有一种使用virtualenvwrapper的简便方法,这是迄今为止在Ubuntu / Debian中管理Python 2.7 / 3.x虚拟环境最简单的方法。

$ sudo apt-get install python3 virtualenvwrapper
$ mkvirtualenv <venv> -p python3
$ workon <venv> # sets into the virtualenv from any terminal.

(可选)启用--system-site-packages以重新使用全局站点包。
virtualenv安装pip和其他python设置工具来帮助我们快速入门。

$ pip install Django
$ pip install -r requirements.txt
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.