[本文出自天外归云的博客园]
部署python3.6.5
腾讯云服务器安装python3竟然要3个多小时!而且一度速度为0……
于是网查据说是腾讯云服务器连python官网缓慢导致的,所以想找个国内的python3.6的下载地址进行安装,-_-||没找到。
于是决定通过本地上传的方法把python3传到腾讯云服务器上,先把python3先下载到本地然后传到腾讯云上就可以了。
首先要下载一个winscp到本地,安装并启动winscp。
填写腾讯云的ip、端口(默认是22)、登录服务器的用户名和密码完成winscp对linux服务器的登录,至此就可以在本地看到在腾讯云上的文件目录了。
把本地的python3.6拖拽到winscp里就可以完成上传:
之后就可以在腾讯云服务器的根目录下看到刚刚上传的python3.6文件了,先解压缩一下:
tar -zxvf Python-3.6.5.tgz
至此这就把python3.6.5传到腾讯云服务器上了:
接下来还要安装python3.6.5,首先创建一个python3文件夹,执行以下命令:
mkdir /usr/local/python3
在根目录下进入解压后的python3.6.5目录:
cd Python-3.6.5
执行配置命令:
./configure --prefix=/usr/local/python3
我的腾讯云服务器是centos系统,执行以上命令遇到了如下报错:
error: no acceptable C compiler found in $PATH
原因是需要先安装gcc,执行以下命令安装gcc:
yum install gcc
然后再执行配置命令就可以了。
然后安装python3,在python3.6.5解压后的目录下执行:
make make install
编辑配置文件:
vi /etc/profile
进入编辑模式:
i
在 export PATH 之前加上:
PATH=/usr/local/python3/bin:$PATH
按esc保存修改并退出:
:wq
执行以下命令使配置生效:
source /etc/profile
至此python3.6.5安装完毕:
安装setuptools
根目录下执行命令下载并解压setuptools:
wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26 tar -zxvf setuptools-19.6.tar.gz
在解压后的setuptools目录下进行安装:
cd setuptools-19.6.tar.gz python3 setup.py build python3 setup.py install
报错提示RuntimeError: Compression requires the (missing) zlib module,执行命令:
yum install zlib yum install zlib-devel
然后去python3.6.5解压包目录下执行命令:
make make install
然后再回到setuptools目录下执行命令:
python3 setup.py install
至此setuptools安装好了。
安装pip
在根目录下执行命令下载并解压pip:
wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb tar -zxvf pip-8.0.2.tar.gz
在pip解压后的目录下安装pip:
cd pip-8.0.2 python3 setup.py build python3 setup.py install
然后我们在/usr/local/python3/bin目录下就可以看到已经成功安装了pip。
但是用pip安装django又报错了,提示cannot import name HTTPSHandler,执行以下命令:
yum install openssl yum install openssl-devel
然后重新编译安装python:
cd /usr/local/Python-3.6.5 make make install
至此需要再重新安装一下pip:
cd ~/pip-8.0.2 python3 setup.py build python3 setup.py install
至此pip安装完成。
安装更多依赖库
把本地python3环境安装的依赖库导入到requirements.txt:
pip freeze > requirements.txt
然后用winscp把这个文件传到腾讯云并安装:
pip install -r requirements.txt
依赖库默认走的腾讯云镜像,所以下载安装会很快。
如果遇到了哪个库安装失败了,vi编辑requirements.txt文件,在安装失败的python库所在行双击d删除该行,并把之前的行也都dd删除了,按esc输入:wq保存并退出编辑。
然后再通过以上命令安装requirements.txt文件中剩下的python库即可。
注意:如果安装sqlite3的python库成功后依然引入失败,需要重新编译安装一下python3:
cd Python-3.6.5
./configure --prefix=/usr/local/python3
make
make install
Django应用部署
Python3.6.5的环境已经搭建完毕,之后就可以在腾讯云服务器启动应用了,我这里部署了一个django应用。
首先git clone我的django代码到腾讯云服务器,当我修改了应用代码后,我进入应用(backloud)所在目录并通过git pull更新代码,之后通过命令启动django应用:
python3 manage.py runserver 0.0.0.0:8000
可以看到服务起来了:
通过ip和端口号对web应用进行访问,可以在腾讯云服务器后台看到访问日志:
至此就已经成功在腾讯云上搭建了python3.6.5的开发环境并部署了django应用。
在后台运行django应用,不随腾讯云web会话断开而关闭应用:
nohup python3 manage.py runserver 0.0.0.0:8000&
对于后台运行的进程最好自定义进程名,省的找不到,可以在manage.py文件中加上进程名定义:
try: import setproctitle setproctitle.setproctitle("xxxx") except: pass
然后就可以通过命令过滤出对应的后台进程了:
ps -A | grep "xxxx"