Ubuntu部署python3.5的开发和运行环境
<p><strong>1 概述</strong></p>
<p>
由于最近项目全部由python2.x转向 python3.x(使用目前最新的 python3.5.1) ,之前的云主机的的默认python版本都面临升级,故进行了升级后将相应的步骤记录下来,作为学习笔记吧。</p>
<p>
服务器运行环境:</p>
<p>
ubuntu 14 LTS Server</p>
<p>
本安装方式具有如下特点:</p>
<ul>
<li>
不影响已经有的python环境</li>
<li>
增量式安装</li>
<li>
完全隔离的沙盒环境</li>
<li>
甚至可以不需要root权限</li>
</ul>
<p>
<strong>2 下载</strong></p>
<p>
在python官网下载指定平台下的python3.5的环境</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_746820">
<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">wget https:</code><code class="bash plain">//www</code><code class="bash plain">.python.org</code><code class="bash plain">/ftp/python/3</code><code class="bash plain">.5.1</code><code class="bash plain">/Python-3</code><code class="bash plain">.5.1.tgz</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.5.1.tgz</p>
<p>
<strong>3 解压</strong></p>
<p>
然后进行解压:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_410217">
<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 functions">tar</code> <code class="bash plain">-xvzf Python-3.5.1.tgz</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.5.1</p>
<p>
<strong>4 安装</strong></p>
<p>
进入目录Python-3.5.1,进行配置:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_661488">
<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">.</code><code class="bash plain">/configure</code> <code class="bash plain">--prefix=</code><code class="bash plain">/usr/local/python35</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
编译和安装:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_77115">
<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 functions">make</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash functions">make</code> <code class="bash functions">install</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<strong>5 建立虚拟环境</strong></p>
<p>
使用python开发环境的时候,一般建立在虚拟环境,这样可以形成项目运行环境的隔离,防止不同依赖的项目的干扰。</p>
<p>
由于python3.5中自带有pyvenv工具,所以也不必再重新安装了virtualenv的三方库了:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_513480">
<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">webapp@iZ25torzzzzZ:</code><code class="bash plain">/usr/local/python35/bin</code><code class="bash plain">$ ll|</code><code class="bash functions">grep</code> <code class="bash plain">pyvenv</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">lrwxrwxrwx 1 webapp webapp 10 Jun 3 19:44 pyvenv -> pyvenv-3.5*</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">-rwxrwxr-x 1 webapp webapp 245 Jun 3 19:44 pyvenv-3.5*</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
进入到当前用户Home目录后,直接运行:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_216936">
<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">/usr/local/python35/bin/pyvenv</code> <code class="bash plain">py3venv</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.5.1的虚拟环境,然后运行:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_546487">
<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 functions">source</code> <code class="bash plain">.</code><code class="bash plain">/py3venv/bin/activate</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.5.1的环境,看到终端前辍带有py3venv表明已经成功:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_42913">
<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">(py3venv) webapp@iZ25torzzzzZ:~</code><code class="bash plain">/py3venv/bin</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,就可以看到进入到python3.5.1的运行界面:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_808853">
<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="bash plain">(py3venv) webapp@iZ25torzzzzZ:~$ python</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash plain">Python 3.5.1 (default, Jun 3 2016, 19:37:46)</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain"> on linux</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash plain">Type </code><code class="bash string">"help"</code><code class="bash plain">, </code><code class="bash string">"copyright"</code><code class="bash plain">, </code><code class="bash string">"credits"</code> <code class="bash plain">or </code><code class="bash string">"license"</code> <code class="bash keyword">for</code> <code class="bash functions">more</code> <code class="bash plain">information.</code>
</div>
<div class="line number5 index4 alt2">
<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>
<strong>6 安装pip</strong></p>
<p>
建立虚拟环境后,下一步就是为虚拟环境安装第三方库管理工具pip</p>
<p>
在py3venv虚拟环境下面执行:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_48888">
<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">curl https:</code><code class="bash plain">//bootstrap</code><code class="bash plain">.pypa.io</code><code class="bash plain">/get-pip</code><code class="bash plain">.py|python</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
然后就可以在此环境下使用pip来进行管理python的第三方库了。</p>
<p>
<strong>7 常见问题-HTTPS错误提示</strong></p>
<p>
有时候需要升级pip时,执行:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_288188">
<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">pip </code><code class="bash functions">install</code> <code class="bash plain">--upgrade pip</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
出现HTTPS的错误提示:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterplain" id="highlighter_136131">
<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="plain plain">pip raises ImportError: cannot import name HTTPSHandler</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
则需要安装 libssl-dev :</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_187276">
<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 functions">sudo</code> <code class="bash plain">apt-get </code><code class="bash functions">install</code> <code class="bash plain">libssl-dev</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.5:</p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_355637">
<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 functions">make</code>
</div>
<div class="line number2 index1 alt1">
<code class="bash functions">make</code> <code class="bash functions">install</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。</p>
<p>
原文链接:http://www.cnblogs.com/beer/p/5557497.html</p>
頁:
[1]