强壮的空气 發表於 2023-7-4 00:00:00

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 -&gt; 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">&gt;&gt;&gt;</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]
查看完整版本: Ubuntu部署python3.5的开发和运行环境