Answers:
我强烈建议避免pip3
在系统站点包中安装东西。我之前已经提出过这些论点,但我会给您注意:
我强烈建议使用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。请注意,我所有站点只有一个环境,因此只有在您执行类似操作时,这才适合您。还有许多其他方式可以做类似的事情。
Django for Python3现在已添加。因此,只需输入终端:
apt-get install python3-django
E: Unable to locate package 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