当前位置: 首页>>技术问答>>正文


如何安装Django for Python 3.x?

, ,

问题描述

我用这个命令安装了Django:

sudo apt-get install python-django

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

最佳解决方法

我强烈建议避免使用pip3在系统site-packages中安装。我已经制作了these arguments before,但我会给你说明:

  • 系统更新打破了一切

  • 安装apt包可以覆盖pip-installed的东西

  • 版本冲突

  • 分销升级是无法预测的混乱。认真。我已经失去了这些头发。

我强烈建议使用virtualenv。无论在哪里开始都是一个巨大的痛苦,但是一旦你完成它,你就可以在完全控制下拥有一个完整的Python环境。这确实意味着更多的工作(你必须检查更新的东西,pip还没有真正的帮助)但你不必担心Ubuntu正在做什么。

我有一个每个站点的环境(只是坐在一个名为venv的子目录中)。有些人 – 包括我,曾经一度 – 喜欢在多个站点之间共享他们的环境。我发现在发布更新方面更容易维护,但有些网站可能很脆弱或需要旧版本,并且可以保留整个环境。因人而异。

在安装这个方面,只是为了打击我,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配置参数)来告诉它Python环境的位置。

至于使开发更容易,您可以自动”mount”您的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。请注意,我的所有网站只有一个环境,因此只有在您执行类似操作时才会为您提供服务。有many other ways of doing similar things

次佳解决方法

我想通过pip如何做到这一点。结果我需要pip3

sudo pip3 install Django

做了伎俩。

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

sudo apt-get install python3-pip

第三种解决方法

最近添加了Django for Python3。所以只需输入一个终端:

apt-get install python3-django

第四种方法

使用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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/6989.html,未经允许,请勿转载。