前奏:centos7中文乱码解决
如果新服务器ssh登录时可能中文显示乱码,,解决方案:
# 可以使用下面的命名查看系统是否安装了中文安装包。
[root@iz2ze6z /]# locale -a |grep "zh_CN"
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
# 如果有显示上面信息则代表已经安装,跳过本步骤,如果没有安装,则先安装
[root@iz2ze6z /]#yum groupinstall "fonts" -y
# 先看看当前系统语言环境:
[root@iz2ze6z /]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
# 可以看到虽然安装了中文语言包但本机的语言环境并不是中文,需要修改locale.conf配置文件,建议使用命令修改
[root@iz2ze6z /]# localectl set-locale LANG=zh_CN
# 重启配置文件使其生效,或者reboot
[root@iz2ze6z /]# source /etc/locale.conf
# 输入date验证一下
[root@iz2ze6z /]# date
2022年 08月 14日 星期日 15:04:20 CST
一、安装python3.9
1.1安装依赖
并非都需要安装依赖,一般centos7已经安装有python2.7和python3.6可能已经安装过依赖,则跳过此步骤。
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel gcc
1.2 删除附带的2.7或其他版本
**骗你的!!!!!!!!千万不要这么粗暴,否则你会发现yum不好用了,yum使用python2.7写的,删除2.7后yum会各种报错!!!**对于centos系统自带python2.7,我们安装好python3后做个默认启动就行,或者分别创建连接到 /usr/bin/ 目录下,也可以在创建虚拟环境时指定python版本。
# 强制删除已安装python及其关联
rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps
# 删除残余文件
whereis python|xargs rm -frv
如果你已经不小心删除了,那么参考下面的博客恢复yum 吧:
链接: https://blog.csdn.net/Tracy_Yuan2014/article/details/110731673
1.2 下载python并安装
wget https://www.python.org/ftp/python/3.9.10/Python-3.9.10.tgz
tar xzf Python-3.9.10.tgz
cd Python-3.9.10
sudo ./configure --enable-optimizations
sudo make altinstall # 安装,或者 make && make install
python3.9 -V
# 添加python3.9和pip3.9软连接,如果不把软连接添加到 /usr/bin/ 在命令窗口直接输入python不会启动
ln -s /usr/local/bin/python3.9 /usr/bin/python
ln -s /usr/local/bin/pip3.9 /usr/bin/pip
至此python安装完毕
二、安装虚拟环境
2.1 使用pip安装virtualenv和 virtualenvwrapper
pip install virtualenv
pip install virtualenvwrapper
上面安装如果权限不够就加上sudo
2.2 修改配置文件.bashrc
2.2.1查找virtualenvwrapper.sh所在的路径
注意:必须有.sh否则查到出来的路径不正确,找到安装路径记录下来,下一步写进系统配置文件.bashrc
sudo find / -name virtualenvwrapper.sh # 查找目录并记录
vim ~/.bashrc # 配置文件默认在~/下的隐藏文件,按i开始写
# 注意写对你的目录
export WORKON_HOME=$HOME/.virtualenvs # 创建一个存放虚拟环境的目录 (可以自己定义)
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python # 指定默认使用的python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh # virtualenvwrapper.sh的位置
# 修改完后按Esc键,输入“:wq!”回车退出
source ~/.bashrc # 修改完成一定要激活更新配置,同时可以激活一下:source /usr/local/bin/virtualenvwrapper.sh

注意:export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python 这个最好写上,centos自带有python2.7和其他python版本,那么你必须指定虚拟环境使用的python版本,否则可能指向你其他的python版本。
2.3创建和管理虚拟环境
mkvirtualenv -p python 虚拟环境名称 # 创建虚拟环境并指定python,mkvirtualenv 虚拟环境名 -p python
workon # 查看虚拟环境
workon 虚拟环境名 # 进入虚拟环境
deactivate # 退出虚拟环境
rmvirtualenv 虚拟环境名 # 删除虚拟环境名
注意,如果遇到创建虚拟环境报错,原因可能是virtualenv依赖包被安装在默认Python目录下,需要做个软连接到/usr/bin/virtualenv
sudo ln -s /usr/local/bin/virtualenvwrapper.sh /usr/bin/virtualenvwrapper
三、迁移项目
3.1导出requirements.txt 方法一
开发电脑虚拟环境下,输入:
pip freeze > requirements.txt
3.2 导出requirements.txt 方法二
使用pipreqs导出requirements.txt,优点是只导出当前环境使用的依赖包,与方法一先进入虚拟环境再导出效果相近,但有指定编码格式的功能。
# 安装
python3 -m pip install pipreqs
# 在当前目录生成
pipreqs . --encoding=utf8 --force
3.3 导入requirements.txt
把生成的requirements.txt复制到服务器,ssh登录服务器,进入刚创建的虚拟环境,输入:
pip install -r requirements.txt