学无先后,达者为师

网站首页 编程语言 正文

centos7 进行Python3.9 Django3项目迁移启动asgi

作者:qd-hhkj 更新时间: 2022-08-15 编程语言

前奏: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

原文链接:https://blog.csdn.net/wuwei_201/article/details/126329892

栏目分类
最近更新