python 3.7.4 shell_centos7上Virtualenv从python3.4升级到Python3.7.4
目前我的虚拟环境python版本是3.4, 想升级到最新的3.7.4, 总结步骤如下:
首先激活当前env_py3环境, 并导出当前依赖包:
Shell
workon env_py3
pip freeze > requirements.txt
1
2
workonenv_py3
pipfreeze>requirements.txt
首先安装依赖:
注意: libffi-devel必须安装, 不然编译安装会失败而导致安装不完整, 而创建虚拟环境时会报错(No module named ‘_ctypes’ )
Shell
yum -y install gcc gcc-c++ zlib zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
yum -y install libffi-devel
1
2
yum-yinstallgccgcc-c++zlibzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-develdb4-devellibpcap-develxz-devel
yum-yinstalllibffi-devel
下载安装python3.7:
Shell
wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
tar -zxvf Python-3.7.4.tgz
cd Python-3.7.4/
mkdir /usr/local/python3.7
./configure --prefix=/usr/local/python3.7
make && make install
1
2
3
4
5
6
wgethttps://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
tar-zxvfPython-3.7.4.tgz
cdPython-3.7.4/
mkdir/usr/local/python3.7
./configure--prefix=/usr/local/python3.7
make&&makeinstall
创建软链接:
Shell
ln -s /usr/local/python3.7/bin/python3.7 /usr/bin/python3.7
ln -s /usr/local/python3.7/bin/pip3 /usr/bin/pip3
1
2
ln-s/usr/local/python3.7/bin/python3.7/usr/bin/python3.7
ln-s/usr/local/python3.7/bin/pip3/usr/bin/pip3
配置虚拟环境:
Shell
#配置虚拟环境创建时默认用python3.7
virtualenv -p /usr/local/python3.7/bin/python3 /root/.virtualenvs
ln -s /root/.virtualenvs/bin/activate /usr/bin/activate
source activate
#创建虚拟环境
mkvirtualenv -p /usr/local/python3.7/bin/python3 env_py3
#切换到虚拟环境
workon env_py3
#导入依赖包
pip install -r requirements.txt
1
2
3
4
5
6
7
8
9
10
#配置虚拟环境创建时默认用python3.7
virtualenv-p/usr/local/python3.7/bin/python3/root/.virtualenvs
ln-s/root/.virtualenvs/bin/activate/usr/bin/activate
sourceactivate
#创建虚拟环境
mkvirtualenv-p/usr/local/python3.7/bin/python3env_py3
#切换到虚拟环境
workonenv_py3
#导入依赖包
pipinstall-rrequirements.txt
附: 我的系统配置文件:
.bashrc:
Shell
## virtualenv
export PIP_REQUIRE_VIRTUALENV=true #pip安装东西的时候不安装到本地环境
export PIP_RESPECT_VIRTUALENV=true #在执行pip的时候让系统自动开启虚拟环境
export WORKON_HOME=$HOME/.virtualenvs #所有虚拟环境存储的目录
export PIP_VIRTUALENV_BASE=$WORKON_HOME
export VIRTUALENV_USE_DISTRIBUTE=1 # 总是使用 pip/distribute
#source /usr/local/bin/virtualenvwrapper.sh
source /usr/bin/virtualenvwrapper.sh
#if [ -e $HOME/.local/bin/virtualenvwrapper.sh ];then
# source $HOME/.local/bin/virtualenvwrapper.sh
#else if [ -e /usr/local/bin/virtualenvwrapper.sh ];then
# source /usr/local/bin/virtualenvwrapper.sh
# fi
#fi
# colourful man page
export LESS_TERMCAP_mb=$'\E[01;34m'
export LESS_TERMCAP_md=$'\E[01;34m'
export LESS_TERMCAP_me=$'\E[0m'
export LESS_TERMCAP_us=$'\E[01;32m'
export LESS_TERMCAP_ue=$'\E[0m'
export LESS_TERMCAP_so=$'\E[01;33;44m'
export LESS_TERMCAP_se=$'\E[0m'
TERM=xterm
export TERM
PATH="$PATH:$HOME/bin:/usr/local/python3.7/bin"
export PATH
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
## virtualenv
exportPIP_REQUIRE_VIRTUALENV=true#pip安装东西的时候不安装到本地环境
exportPIP_RESPECT_VIRTUALENV=true#在执行pip的时候让系统自动开启虚拟环境
exportWORKON_HOME=$HOME/.virtualenvs#所有虚拟环境存储的目录
exportPIP_VIRTUALENV_BASE=$WORKON_HOME
exportVIRTUALENV_USE_DISTRIBUTE=1# 总是使用 pip/distribute
#source /usr/local/bin/virtualenvwrapper.sh
source/usr/bin/virtualenvwrapper.sh
#if [ -e $HOME/.local/bin/virtualenvwrapper.sh ];then
# source $HOME/.local/bin/virtualenvwrapper.sh
#else if [ -e /usr/local/bin/virtualenvwrapper.sh ];then
# source /usr/local/bin/virtualenvwrapper.sh
# fi
#fi
# colourful man page
exportLESS_TERMCAP_mb=$'\E[01;34m'
exportLESS_TERMCAP_md=$'\E[01;34m'
exportLESS_TERMCAP_me=$'\E[0m'
exportLESS_TERMCAP_us=$'\E[01;32m'
exportLESS_TERMCAP_ue=$'\E[0m'
exportLESS_TERMCAP_so=$'\E[01;33;44m'
exportLESS_TERMCAP_se=$'\E[0m'
TERM=xterm
exportTERM
PATH="$PATH:$HOME/bin:/usr/local/python3.7/bin"
exportPATH
旧的:升级python2.7.14:
在系统上升级python还是需要慎重, 严重的会导致系统命令不可用, 建议最好不要覆盖系统原本的/usr/bin/python文件
下面是升级脚本:
#!/bin/bash
export https_proxy=10.x.x.x:8888
export http_proxy=10.x.x.x:8888
py_version=`python -c "import platform;print platform.python_version()"`
mkdir /opt/packages
cd /opt/packages
wget https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz
tar -zxvf Python-2.7.14.tgz
#pip freeze > requirments.txt
cd Python-2.7.14
#解决Python升级找不到Tkinter模块
yum -y install tkinter
#-ltk8.5 -ltcl8.5 默认是 8.2 ,请你系统实际tcl/tk版本修改
#rpm -qa | grep ^tk
#rpm -qa | grep ^tcl
#vi Modules/Setup.dist
#_tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \
#-L/usr/local/lib \
#-I/usr/local/include \
#-ltk8.5 -ltcl8.5 \
#-lX11
yum -y install tcl-devel tk-devel
./configure --enable-shared --prefix=/usr/local CFLAGS=-fPIC LDFLAGS="-Wl,-rpath /usr/local/lib" --enable-unicode=ucs4
make -j24
sudo make install
cd ../
mv /usr/bin/python /usr/bin/python$py_version
ln -sf /usr/local/bin/python /usr/bin/python
py_version_new=`python -c "import platform;print platform.python_version()"`
if [ $py_version_new == "2.7.14" ]; then
sed -i "s@\#\!.*/usr/bin/python@\#\!/usr/bin/python$py_version@g" /usr/bin/yum
sed -i "s@\#\!.*/usr/bin/python@\#\!/usr/bin/python$py_version@g" /usr/libexec/urlgrabber-ext-down
sed -i "s@\#\!.*/usr/bin/python@\#\!/usr/bin/python$py_version@g" /usr/bin/firewall-cmd
sed -i "s@\#\!.*/usr/bin/python@\#\!/usr/bin/python$py_version@g" /sbin/authconfig
wget https://bootstrap.pypa.io/ez_setup.py
python ez_setup.py
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
ln -sf /usr/local/bin/pip /usr/bin/pip
ln -sf /usr/local/bin/pip /usr/bin/pip2
echo "PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin" >> /etc/profile
echo "export PATH" >> /etc/profile
source /etc/profile
#pip uninstall -r requirments.txt
#pip install -r requirments.txt.128
#pip install -U docker
#pip install --upgrade --force-reinstall 'requests==2.18.4' urllib3
else
echo "python 2.7.14 updated failed!!!"
fi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bin/bash
exporthttps_proxy=10.x.x.x:8888
exporthttp_proxy=10.x.x.x:8888
py_version=`python-c"import platform;print platform.python_version()"`
mkdir/opt/packages
cd/opt/packages
wgethttps://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz
tar-zxvfPython-2.7.14.tgz
#pip freeze > requirments.txt
cdPython-2.7.14
#解决Python升级找不到Tkinter模块
yum-yinstalltkinter
#-ltk8.5 -ltcl8.5 默认是 8.2 ,请你系统实际tcl/tk版本修改
#rpm -qa | grep ^tk
#rpm -qa | grep ^tcl
#vi Modules/Setup.dist
#_tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \
#-L/usr/local/lib \
#-I/usr/local/include \
#-ltk8.5 -ltcl8.5 \
#-lX11
yum-yinstalltcl-develtk-devel
./configure--enable-shared--prefix=/usr/localCFLAGS=-fPICLDFLAGS="-Wl,-rpath /usr/local/lib"--enable-unicode=ucs4
make-j24
sudomakeinstall
cd../
mv/usr/bin/python/usr/bin/python$py_version
ln-sf/usr/local/bin/python/usr/bin/python
py_version_new=`python-c"import platform;print platform.python_version()"`
if[$py_version_new=="2.7.14"];then
sed-i"s@\#\!.*/usr/bin/python@\#\!/usr/bin/python$py_version@g"/usr/bin/yum
sed-i"s@\#\!.*/usr/bin/python@\#\!/usr/bin/python$py_version@g"/usr/libexec/urlgrabber-ext-down
sed-i"s@\#\!.*/usr/bin/python@\#\!/usr/bin/python$py_version@g"/usr/bin/firewall-cmd
sed-i"s@\#\!.*/usr/bin/python@\#\!/usr/bin/python$py_version@g"/sbin/authconfig
wgethttps://bootstrap.pypa.io/ez_setup.py
pythonez_setup.py
wgethttps://bootstrap.pypa.io/get-pip.py
pythonget-pip.py
ln-sf/usr/local/bin/pip/usr/bin/pip
ln-sf/usr/local/bin/pip/usr/bin/pip2
echo"PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin">>/etc/profile
echo"export PATH">>/etc/profile
source/etc/profile
#pip uninstall -r requirments.txt
#pip install -r requirments.txt.128
#pip install -U docker
#pip install --upgrade --force-reinstall 'requests==2.18.4' urllib3
else
echo"python 2.7.14 updated failed!!!"
fi
解决升级python导致的salt启动失败:
centos7重新编辑安装了python2.7.14, 原来是2.7.5, 导致salt-minion启动失败。
解决:
由于之前备份了python执行文件为python2.7.5, 新的Python安装在/usr/local/目录。由于脚本误把之前版本的pip包删除了, 所以重新安装salt需要的模块:
首先更改salt执行文件:
sed -i ‘s|^#!/usr/bin/python$|#!/usr/bin/python2.7.5|’ /usr/bin/salt*
如提示没有yaml块, 则安装之:
wget http://pyyaml.org/download/pyyaml/PyYAML-3.12.tar.gz; tar -xvzf PyYAML-3.12.tar.gz; python2.7.5 setup.py install
安装相应模块:
python2.7.5 -m pip install zmq msgpack-python M2Crypto
python 3.7.4 shell_centos7上Virtualenv从python3.4升级到Python3.7.4相关推荐
- window下编辑的python文件复制到linux上,运行后出现/usr/bin/python3^M
window下编辑的python文件复制到linux上,运行后出现 /usr/bin/python3^M: bad interpreter: No such file or directory 1.使 ...
- Python - Windows系统下安装使用virtualenv
1 - virtualenv https://pypi.python.org/pypi/virtualenv/ https://github.com/pypa/virtualenv 在实际开发测试中, ...
- 如何将本地python项目部署到服务器上_如何将本地的Django项目部署到云服务器
如何将本地的Django项目部署到云服务器 开发环境 开发语言: Python 后台框架:Django 前端框架:bootstrap web服务器:nginx wsgi服务器:uwsgi 查看本地项目 ...
- python多环境管理(venv与virtualenv)
一.背景 我们经常会遇见这样的场景: 1.各个项目使用的python版本不相同 由于Python的解释器版本众多,各版本之间差异非常大.特别是python2和python3,互不兼容. 有些项目可能用 ...
- Python为什么要使用虚拟环境-Python虚拟环境的安装和配置-virtualenv
一 虚拟环境 virtual environment 它是一个虚拟化,从电脑独立开辟出来的环境.通俗的来讲,虚拟环境就是借助虚拟机docker来把一部分内容独立出来,我们把这部分独立出来的东西称作&q ...
- 解决python发送multipart/form-data请求上传文件的问题
解决python发送multipart/form-data请求上传文件的问题 参考文章: (1)解决python发送multipart/form-data请求上传文件的问题 (2)https://ww ...
- python详细安装教程linux-在Linux上安装Python3
一.安装依赖环境 输入命令:yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readlin ...
- python培训班 费用-参加线上python培训班要多少钱?
关键词:线上python培训机构,线上pyton培训机构多少钱,线上python培训班 参加Python培训机构要花多少钱?具体还是看培训机构所在的城市.选择机构的规模.教学方法.具体的教学内容和培训 ...
- python线下培训-Python培训是应该选择线上还是线下呢?
前言 Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及相关电子版书籍,欢迎前来领取! 想学习Python的朋友一定都 ...
最新文章
- 2021年中国服装行业分析报告-产业规模现状与发展规划趋势
- ICML 2021 (Long Oral) | 深入研究不平衡回归问题
- 考研结束了,使用SpringBoot开发一个考研管理系统
- 移动平台的meta标签-----神奇的功效
- 实现图片打乱_基于混沌Logistic加密算法的图片加密与还原
- ORACLE TEXT LEXER PREFERENCE(三)
- 全国计算机等级考试题库二级C操作题100套(第66套)
- Iterator与ListIterator有什么区别
- mac:在当前文件夹打开terminal终端
- vs cpp生成h文件_lib 和 dll 的区别、生成以及使用详解
- 直播无线领夹式麦克风
- 外文论文查重怎么查?
- weblogic上服务器上日志查看及ohs服务器重启
- Windows 11 电脑如何设置自动开机 (Windows 11 2022H2)
- Wide Deep模型的理解及实战(Tensorflow)
- 点云入门笔记(三):PCL基础以及PCL学习指南
- 中国铁路信息化行业规划布局及投投资可行性分析报告2022-2028年版
- 外交部发言人与BBC恳谈绿坝和娃
- 程序运行出现 UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels
- 下列不属于未来发展的计算机技术是,计算机系统结构自考2017年10月真题