ubuntu下安装Python多版本的方法及注意事项
<p>今天一不小心又把ubuntu系统给完坏了,因为我把python3卸载了,然后就。。。好了,不废话了,接下来就说一下如何在ubuntu下管理python的多个版本。我这里使用的是一个叫pyenv的Python版本管理工具。</p>
<p>
系统环境:ubuntu14.04LTS,系统默认的python版本为2.7,我这里想要再安装一个3.4.3版本。</p>
<p>
再安装python之前,我们首先要安装这个管理工具pyenv:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterps" id="highlighter_17512">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="ps plain">$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv</code>
</div>
<div class="line number2 index1 alt1">
<code class="ps plain">$ </code><code class="ps keyword">echo</code> <code class="ps string">'export PYENV_ROOT="$HOME/.pyenv"'</code> <code class="ps plain">>> ~/.bashrc</code>
</div>
<div class="line number3 index2 alt2">
<code class="ps plain">$ </code><code class="ps keyword">echo</code> <code class="ps string">'export PATH="$PYENV_ROOT/bin:$PATH"'</code> <code class="ps plain">>> ~/.bashrc</code>
</div>
<div class="line number4 index3 alt1">
<code class="ps plain">$ </code><code class="ps keyword">echo</code> <code class="ps string">'eval "$(pyenv init -)"'</code> <code class="ps plain">>> ~/.bashrc</code>
</div>
<div class="line number5 index4 alt2">
<code class="ps plain">$ exec </code><code class="ps value">$SHELL</code> <code class="ps keyword">-l</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
我们还可以通过下面这个命令来查看可以安装的python版本:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_946038">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$ pyenv </code><code class="bash functions">install</code> <code class="bash plain">--list</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
如果我们确定要安装python3.4.3的话,接下来我们就可以安装python了,但是再安装之前,我们必须要安装python所需要的依赖包,这个必须要安装,安装会失败的:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_66904">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$ </code><code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">libc6-dev gcc</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">$ </code><code class="bash functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">-y </code><code class="bash functions">make</code> <code class="bash plain">build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
上面的依赖包搞定之后,我们就可以安装python了:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_626106">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$ pyenv </code><code class="bash functions">install</code> <code class="bash plain">3.4.3 -</code><code class="bash functions">v</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
该命令会从github上下载python的源代码,并解压到/tmp目录下,然后在/tmp中执行编译工作。若依赖包没有安装,则会出现编译错误,需要在安装依赖包滞后重新执行该命令。</p>
<p>
安装完成之后,需要使用如下命令对数据库进行更新:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_901830">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$ pyenv rehash</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
查看当前已经安装的python版本</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_724702">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$ pyenv versions</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">* system (</code><code class="bash functions">set</code> <code class="bash plain">by </code><code class="bash plain">/home/seisman/</code><code class="bash plain">.pyenv</code><code class="bash plain">/version</code><code class="bash plain">)</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">3.4.3</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
其中星号代表是当前系统正在使用的python版本是系统自带的。</p>
<p>
设置全局的python版本</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_397110">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash plain">$ pyenv global 3.4.3</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">$ pyenv versions</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">system</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">* 3.4.3 (</code><code class="bash functions">set</code> <code class="bash plain">by </code><code class="bash plain">/home/seisman/</code><code class="bash plain">.pyenv</code><code class="bash plain">/version</code><code class="bash plain">)</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
从上面,我们可以看出来当前的python版本已经变为了3.4.3。也可以使用pyenv local或pyenv shell临时改变python的版本。</p>
<p>
确认python版本</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterpy" id="highlighter_204706">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="py plain">$ python</code>
</div>
<div class="line number2 index1 alt1">
<code class="py plain">Python </code><code class="py value">3.4</code><code class="py plain">.</code><code class="py value">3</code> <code class="py plain">(default, Apr </code><code class="py value">1</code> <code class="py value">2015</code><code class="py plain">, </code><code class="py value">19</code><code class="py plain">:</code><code class="py value">10</code><code class="py plain">:</code><code class="py value">43</code><code class="py plain">) </code>
</div>
<div class="line number3 index2 alt2">
<code class="py plain"> on linux</code>
</div>
<div class="line number4 index3 alt1">
<code class="py functions">Type</code> <code class="py string">"help"</code><code class="py plain">, </code><code class="py string">"copyright"</code><code class="py plain">, </code><code class="py string">"credits"</code> <code class="py keyword">or</code> <code class="py string">"license"</code> <code class="py keyword">for</code> <code class="py plain">more information.</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<span><strong>注意事项:</strong></span></p>
<p>
输入python即可使用新版的python;</p>
<p>
系统自带的脚本会以/usr/bin/python的方式直接调用老版本的python,因而不会对系统脚本产生影响;</p>
<p>
使用pip安装第三方模块时会安装到~/.pyenv/versions/3.4.3下,不会和系统模块发生冲突;</p>
<p>
使用pip安装模块后,可能需要执行pyenv rehash更新数据库。</p>
<p>
以上所述是小编给大家介绍的ubuntu下安装多版本Python的方法及注意事项,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!</p>
<p>
原文链接:http://www.cnblogs.com/ningvsban/</p>
頁:
[1]