目前我的虚拟环境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相关推荐

  1. window下编辑的python文件复制到linux上,运行后出现/usr/bin/python3^M

    window下编辑的python文件复制到linux上,运行后出现 /usr/bin/python3^M: bad interpreter: No such file or directory 1.使 ...

  2. Python - Windows系统下安装使用virtualenv

    1 - virtualenv https://pypi.python.org/pypi/virtualenv/ https://github.com/pypa/virtualenv 在实际开发测试中, ...

  3. 如何将本地python项目部署到服务器上_如何将本地的Django项目部署到云服务器

    如何将本地的Django项目部署到云服务器 开发环境 开发语言: Python 后台框架:Django 前端框架:bootstrap web服务器:nginx wsgi服务器:uwsgi 查看本地项目 ...

  4. python多环境管理(venv与virtualenv)

    一.背景 我们经常会遇见这样的场景: 1.各个项目使用的python版本不相同 由于Python的解释器版本众多,各版本之间差异非常大.特别是python2和python3,互不兼容. 有些项目可能用 ...

  5. Python为什么要使用虚拟环境-Python虚拟环境的安装和配置-virtualenv

    一 虚拟环境 virtual environment 它是一个虚拟化,从电脑独立开辟出来的环境.通俗的来讲,虚拟环境就是借助虚拟机docker来把一部分内容独立出来,我们把这部分独立出来的东西称作&q ...

  6. 解决python发送multipart/form-data请求上传文件的问题

    解决python发送multipart/form-data请求上传文件的问题 参考文章: (1)解决python发送multipart/form-data请求上传文件的问题 (2)https://ww ...

  7. python详细安装教程linux-在Linux上安装Python3

    一.安装依赖环境 输入命令:yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readlin ...

  8. python培训班 费用-参加线上python培训班要多少钱?

    关键词:线上python培训机构,线上pyton培训机构多少钱,线上python培训班 参加Python培训机构要花多少钱?具体还是看培训机构所在的城市.选择机构的规模.教学方法.具体的教学内容和培训 ...

  9. python线下培训-Python培训是应该选择线上还是线下呢?

    前言 Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及相关电子版书籍,欢迎前来领取! 想学习Python的朋友一定都 ...

最新文章

  1. 2021年中国服装行业分析报告-产业规模现状与发展规划趋势
  2. ICML 2021 (Long Oral) | 深入研究不平衡回归问题
  3. 考研结束了,使用SpringBoot开发一个考研管理系统
  4. 移动平台的meta标签-----神奇的功效
  5. 实现图片打乱_基于混沌Logistic加密算法的图片加密与还原
  6. ORACLE TEXT LEXER PREFERENCE(三)
  7. 全国计算机等级考试题库二级C操作题100套(第66套)
  8. Iterator与ListIterator有什么区别
  9. mac:在当前文件夹打开terminal终端
  10. vs cpp生成h文件_lib 和 dll 的区别、生成以及使用详解
  11. 直播无线领夹式麦克风
  12. 外文论文查重怎么查?
  13. weblogic上服务器上日志查看及ohs服务器重启
  14. Windows 11 电脑如何设置自动开机 (Windows 11 2022H2)
  15. Wide Deep模型的理解及实战(Tensorflow)
  16. 点云入门笔记(三):PCL基础以及PCL学习指南
  17. 中国铁路信息化行业规划布局及投投资可行性分析报告2022-2028年版
  18. 外交部发言人与BBC恳谈绿坝和娃
  19. 程序运行出现 UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels
  20. 下列不属于未来发展的计算机技术是,计算机系统结构自考2017年10月真题

热门文章

  1. Drupal的taxonomy_manager模块合并分类的方法
  2. Ubuntu之sshfs远程目录挂载到本地
  3. repo sync代码断点续传
  4. win10 wsl和wsl2使用总结
  5. 电脑族每天宜喝四杯茶
  6. SpringBoot之mybatis-plus
  7. tensorflow之softmax
  8. python训练过程是什么_学了这么久,你知道Python机器学习全流程是怎样的么?
  9. 服务器经过交换机传递文件丢失,H3C交换机bin文件丢失后补救方案
  10. zookeeper 日志查看_zookeeper 安装和集群配置