我使用以下命令安装了 Django:
sudo apt-get install python-django
它安装了版本 1.5.4-1ubuntu1。Django 文档说从版本 1.5 开始,Django 支持 Python 3。但是当我运行 Python 3 解释器并尝试导入 Django 时,它说没有这样的模块。我尝试寻找 Python3 版本的 Django,但没有这样的包。我怎样才能让 Django 在 Python3 上运行?我更喜欢使用 ubuntu 包,而不是手动安装东西。
答案1
我强烈建议避免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 标志(或家庭配置参数)来告诉它 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
(我的所有开发网站都存储在这里)时,它都会为我安装虚拟环境。请注意,我的所有网站只有一个环境,因此这只适合于您执行类似操作的情况。有做类似事情的许多其他方法。
答案2
我弄清楚了如何使用pip
。结果我需要pip3
:
sudo pip3 install Django
成功了。
您可能需要通过以下方式获取 pip3:
sudo apt-get install python3-pip
答案3
最近添加了适用于 Python3 的 Django。因此只需在终端中输入:
apt-get install python3-django
答案4
伙计们,有一个简单的方法虚拟环境包装器,目前为止最容易管理 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
重用全局站点包。
虚拟环境安装pip和其他python安装工具,帮助我们快速上手。
$ pip install Django
$ pip install -r requirements.txt