<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[[实践OK]在CentOS7上安装并配置Python3.8.1环境,新版本Python3.6.2支持Ansible的，和pip3 pip 安装 pdb调试程序如 python -m pdb mail.py,涉及到yum里的python本维持旧版本也需要修改其指向旧版本。 ]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Unix/LinuxC技术]]></category>
<pubDate>Thu, 21 Jun 2018 02:20:18 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	背景：Python很火，且连一些如ESP8266的硬件都支持Python了。<br/>目前Python存在两个版本Python2和Python3系列，且这两个版本同时在更新与维护。到底是选择Python2还是选择Python3，取决于当前要使用的库、框架支持哪个版本。因此一台电脑上可能需要同时安装Python2和Python3两个版本。本文主要讲述的是如何在centos7系统中存在python2系列的同时安装python3.8.1(目前python3系列的最新版本)<br/><br/>1.安装升级相应的软件包<br/>yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make <br/><br/>2.下载python 3.8.1 的源码包<br/>wget http://mirrors.sohu.com/python/3.8.1/Python-3.8.1.tgz<br/><br/>3.安装python3.8.1<br/>tar zxvf Python-3.8.1.tgz -C /opt/<br/>cd /opt/Python-3.8.1/&nbsp;&nbsp;<br/>./configure --prefix=/usr/local/python3 <br/>make &amp;&amp; make install&nbsp;&nbsp;<br/><br/>若遇到编译问题：<br/>zipimport.ZipImportError: can&#039;t decompress data; zlib not available&nbsp;&nbsp;#make &amp;&amp; make install<br/>yum install zlib zlib-devel -y<br/><br/>4.配置python，配置python3&nbsp;&nbsp;pip3 软链接，设置软连接：目的是让我们直接在任何地方输入python3命令都可以得到python解释器的运行。<br/>更改/usr/bin/python链接：<br/>ln -s /usr/local/python3/bin/python3.8.1 /usr/bin/python3<br/>ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3<br/>mv /usr/bin/pip&#123;,.backup&#125; <br/>ln -s /usr/local/python3/bin/pip3 /usr/bin/pip&nbsp;&nbsp; #python2-pip没有，就没有这个pip.<br/>查看是否安装成功<br/>python3 -V<br/>pip3 -V<br/><br/>更改/usr/bin/python默认链接，实现升级：<br/>/usr/bin/python --version<br/>Python 2.7.5<br/>mv /usr/bin/python&#123;,.old.backup&#125;<br/>ln -sf /usr/local/python3/bin/python3.8&nbsp;&nbsp;/usr/bin/python <br/><br/><br/>5.查看当python的版本,出现版本信息即为正确安装<br/>python3 --version<br/><br/>安装python3.7出现ModuleNotFoundError: No module named &#039;_ctypes&#039;报错(重新编译一次就OK了)<br/><textarea name="code" class="php" rows="15" cols="100">
主要是少安装了包：
解决方法：

yum install libffi-dev -y
yum update -y
然后重新make install即可,如果还报错，在继续安装下其他基础包：

yum install make curl curl-devel gcc gcc-c++ gcc-g77 gcc* make zlib-devel bzip2-devel openssl-devel xz-libs wget unzip xz vixie-cron crontabs ntpdate tar lrzsz sysstat bind-utils vim -y
yum groupinstall &#039;development tools&#039; -y
yum update -y
Centos7.5测试通过·

cat ~/.pip/pip.conf 
[global]
timeout = 60
index-url = https://pypi.doubanio.com/simple
trusted-host = pypi.doubanio.com
测试：pip install simplejson
</textarea><br/>来自:https://mhl.xyz/Python/python37_ctypes.html<br/><br/><br/>6.更改yum脚本的python依赖<br/>yum localinstall mysql-5.7.12-171123111505.el7.centos.x86_64.rpm <br/>&nbsp;&nbsp;File &quot;/usr/libexec/urlgrabber-ext-down&quot;, line 28<br/>&nbsp;&nbsp;&nbsp;&nbsp;except OSError, e:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;^<br/># ls /usr/bin/yum*<br/># ls yum*<br/>yum yum-config-manager yum-debug-restore yum-groups-manager<br/>yum-builddep yum-debug-dump yumdownloader<br/>更改以上文件头为<br/>#!/usr/bin/python 改为 #!/usr/bin/python2<br/><br/>用Sed 一行搞定，参考自[实践OK]经常用到之linux sed 批量替换字符串,及模糊替换和模糊拼接的例子。http://jackxiang.com/post/2324/：<br/>/usr/bin/yum-groups-manager&nbsp;&nbsp;#!/usr/bin/python -tt<br/>/usr/bin/yumdownloader #直接python后面有一个空格<br/>/usr/bin/yum-debug-restore #!/usr/bin/python -tt<br/>/usr/bin/yum-debug-dump&nbsp;&nbsp;#!/usr/bin/python -tt<br/>/usr/bin/yum-config-manager #!/usr/bin/python -tt<br/>/usr/bin/yum-builddep&nbsp;&nbsp;#!/usr/bin/python -tt<br/>/usr/bin/yum&nbsp;&nbsp;#python后面无空格<br/>势必要有两种替换：<br/>sed -i &#039;s/#!&#92;/usr&#92;/bin&#92;/python /#!&#92;/usr&#92;/bin&#92;/python2.7 /&#039; /usr/bin/yum-builddep<br/>sed -i &#039;s/#!&#92;/usr&#92;/bin&#92;/python /#!&#92;/usr&#92;/bin&#92;/python2.7 /&#039; /usr/bin/yum-config-manager<br/>sed -i &#039;s/#!&#92;/usr&#92;/bin&#92;/python /#!&#92;/usr&#92;/bin&#92;/python2.7 /&#039; /usr/bin/yum-debug-dump<br/>sed -i &#039;s/#!&#92;/usr&#92;/bin&#92;/python /#!&#92;/usr&#92;/bin&#92;/python2.7 /&#039; /usr/bin/yum-debug-restore<br/>sed -i &#039;s/#!&#92;/usr&#92;/bin&#92;/python /#!&#92;/usr&#92;/bin&#92;/python2.7 /&#039; /usr/bin/yumdownloader<br/>sed -i &#039;s/#!&#92;/usr&#92;/bin&#92;/python /#!&#92;/usr&#92;/bin&#92;/python2.7 /&#039; /usr/bin/yum-groups-manager<br/>sed -i &#039;s/#!&#92;/usr&#92;/bin&#92;/python$/#!&#92;/usr&#92;/bin&#92;/python2.7/&#039; /usr/bin/yum<br/>sed -i &#039;s/#!&#92;/usr&#92;/bin&#92;/python$/#!&#92;/usr&#92;/bin&#92;/python2.7/&#039; /usr/libexec/urlgrabber-ext-down<br/><br/>这个-tt的没有啥用，只是起到警告作用，完全在替换时不要：<br/>-t&nbsp;&nbsp;&nbsp;&nbsp; Issue a warning when a source file mixes tabs and spaces for indentation in a&nbsp;&nbsp;way&nbsp;&nbsp;that&nbsp;&nbsp;makes&nbsp;&nbsp;it<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;depend on the worth of a tab expressed in spaces.&nbsp;&nbsp;Issue an error when the option is given twice.<br/>-t 当源文件以制作缩进的方式混合制表符和空格时发出警告<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 取决于用空格表示的选项卡的价值。 当该选项被赋予两次时发出一个错误。<br/><br/>7.测试用Python的Pip3安装Python扩展：<br/>rpm -qf /bin/pip<br/>python2-pip-8.1.2-5.el7.noarch<br/>/bin/pip --version<br/>pip 9.0.1 from /usr/lib/python2.7/site-packages (python 2.7)<br/><br/>pip3 --version<br/>pip 9.0.1 from /usr/local/python3/lib/python3.8.1/site-packages (python 3.8.1)<br/><br/>pip3 install PyEmail<br/>Collecting PyEmail<br/>&nbsp;&nbsp;Downloading https://files.pythonhosted.org/packages/ca/39/caf0436670b6fa9f072e322fab1a2b04d5631bdbdc8ea9857230aae02dd5/PyEmail-0.0.1.zip<br/>Installing collected packages: PyEmail<br/>&nbsp;&nbsp;Running setup.py install for PyEmail ... done<br/>Successfully installed PyEmail-0.0.1<br/>You are using pip version 9.0.1, however version 10.0.1 is available.<br/>You should consider upgrading via the &#039;pip install --upgrade pip&#039; command.<br/><br/>pip3 install ipdb <br/>Collecting ipdb<br/>&nbsp;&nbsp;Downloading https://files.pythonhosted.org/packages/80/fe/4564de08f174f3846364b3add8426d14cebee228f741c27e702b2877e85b/ipdb-0.11.tar.gz<br/>Requirement already satisfied: setuptools in /usr/local/python3/lib/python3.8.1/site-packages (from ipdb)<br/>Collecting ipython&gt;=5.0.0 (from ipdb)<br/>&nbsp;&nbsp;Downloading https://files.pythonhosted.org/packages/b1/7f/91d50f28af3e3a24342561983a7857e399ce24093876e6970b986a0b6677/ipython-6.4.0-py3-none-any.whl (750kB)<br/>&nbsp;&nbsp;&nbsp;&nbsp;62% &#124;████████████████████&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124; 471kB 54kB/s eta 0:00:06<br/>好一会下载安装就能装上这个,但是提示：You are using pip version 9.0.1, however version 10.0.1 is available.<br/>You should consider upgrading via the &#039;pip install --upgrade pip&#039; command.<br/>ln -s /usr/local/python3/bin/pip3 /usr/bin/pip<br/>pip install --upgrade pip<br/><br/>pip install ipdb&nbsp;&nbsp; #再一次安装这个Python的调试扩展<br/>python -m pdb mail.py<br/><br/>最后，这些脚本总结起来放一块就这些，方便后期再安装之用：<br/><textarea name="code" class="php" rows="15" cols="100">
tar zxvf Python-3.8.1.tgz -C /opt/
cd /opt/Python-3.8.1/&nbsp;&nbsp;
./configure --prefix=/usr/local/python3 
yum install zlib zlib-devel -y
make &amp;&amp; make install&nbsp;&nbsp;

ln -s /usr/local/python3/bin/python3.8.1 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
mv /usr/bin/pip&#123;,.backup&#125; 
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
mv /usr/bin/python&#123;,.backup&#125;
ln -s /usr/local/python3/bin/python3.8.1 /usr/bin/python

sed -i &#039;s/#!&#92;/usr&#92;/bin&#92;/python /#!&#92;/usr&#92;/bin&#92;/python2.7 /&#039; /usr/bin/yum-builddep
sed -i &#039;s/#!&#92;/usr&#92;/bin&#92;/python /#!&#92;/usr&#92;/bin&#92;/python2.7 /&#039; /usr/bin/yum-config-manager
sed -i &#039;s/#!&#92;/usr&#92;/bin&#92;/python /#!&#92;/usr&#92;/bin&#92;/python2.7 /&#039; /usr/bin/yum-debug-dump
sed -i &#039;s/#!&#92;/usr&#92;/bin&#92;/python /#!&#92;/usr&#92;/bin&#92;/python2.7 /&#039; /usr/bin/yum-debug-restore
sed -i &#039;s/#!&#92;/usr&#92;/bin&#92;/python /#!&#92;/usr&#92;/bin&#92;/python2.7 /&#039; /usr/bin/yumdownloader
sed -i &#039;s/#!&#92;/usr&#92;/bin&#92;/python /#!&#92;/usr&#92;/bin&#92;/python2.7 /&#039; /usr/bin/yum-groups-manager
sed -i &#039;s/#!&#92;/usr&#92;/bin&#92;/python$/#!&#92;/usr&#92;/bin&#92;/python2.7/&#039; /usr/bin/yum
sed -i &#039;s/#!&#92;/usr&#92;/bin&#92;/python$/#!&#92;/usr&#92;/bin&#92;/python2.7/&#039; /usr/libexec/urlgrabber-ext-down
</textarea><br/><br/>来自：https://blog.csdn.net/hobohero/article/details/54381475<br/>来自：https://blog.csdn.net/wjqwinn/article/details/75633714
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [实践OK]在CentOS7上安装并配置Python3.8.1环境,新版本Python3.6.2支持Ansible的，和pip3 pip 安装 pdb调试程序如 python -m pdb mail.py,涉及到yum里的python本维持旧版本也需要修改其指向旧版本。 ]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>