云主机运行Python踩坑记录
注册了一个云主机
想用来跑跑python代码,找了好多教程,从中午十一点多开始折腾,一直到晚上12点才完全弄好。
记录一下踩的坑:
- 装系统
起初选择成了宝塔面板,最后换成了centos7纯净版,控制台不可以直接点击VNC连接,可以直接使用putty进行ssh连接
- 安装python3
Centos安装wget命令:
yum -y install wget
系统自带python2,安装好python3之后需要配置环境
CentOS 7编译安装Python3.7.X
在CentO S上通过编译安装Python3.7,添加python3软链,并使用python3。
环境 安装环境如下:
Windows 10 Pro VMWare Workstation 15 Pro CentOS Linux release 7.6.1810
(Core) root权限,所有操作都是在root用户下操作 安装依赖和yum更新 安装Python3.7的前期准备。 yum更新
个人习惯,安装包之前会更新yum源。 yum update 安装依赖项 安装Python 3.7所需的依赖: yum install
zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel
readline-devel tk-devel libffi-devel gcc make 下载Python
在官网下载所需版本,这里用的是3.7.0版本wget https://www.python.org/ftp/3.7.0/Python-3.7.0.tgz 安装Python
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz 安装Python
通过解压,配置编译,编译安装等步骤完成 解压 下载好了之后在文件所在目录解压 tar -xvf Python-3.7.0.tgz 配置编译
进入到解压的python的目录里面,使用Python3.7.0/configure
文件进行配置 cd Python-3.7.0
配置编译的的路径 ./configure --prefix=/opt/python/python-3.7.0 注:
这里–prefix是指定编译安装的文件夹 优化选项(可选):
执行完上一步后会提示执行以下的代码对Python解释器进行优化,执行该代码后,会编译安装到 /usr/local/bin/
下,且不用添加软连接或环境变量 ./configure --enable-optimizations 编译和安装 make && make install
这里报错:
zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] Error 1
ModuleNotFoundError: No module named '_ctypes'
解决方法:
yum -y install libffi-devel tk-devel
安装好以后,重新执行 make install 即可。
添加软连接 添加软链或者添加到环境变量,直接输入python3就可以使用了,下边是添加软连接: ln -s
/opt/python/python-3.7.0 /usr/bin/python3
- python指向python3
无法创建符号链接"/usr/bin/python": 文件已存在
解决方法:
rm -rf /usr/bin/python
原因是自己安装的python3不在/usr/bin/python而再/usr/local/python3/bin/python3,建立连接的时候要修改。
- 安装虚拟环境
进入虚拟环境:
1)下载 virtualenv 库 这个是创建 虚拟环境使用的库。
pip3 install virtualenv 注意:这里使用的是 pip3,若是直接使用 pip 则对应的是 python2 版本的。
2)下载 virtualenvwrapper-win 库 这个库是为了方便管理虚拟环境使用的
pip3 install virtualenvwrapper-win 下载完了还需要配置环境变量
vim ~/.bashrc 在末尾添加上这两句
export WORK_HOME=$HOME/.virtualenvssource /usr/local/python3/bin/virtualenvwrapper.sh
第一句是固定的,第二句为指定
virtualenvwrapper 安装的路径
激活配置
source ~/.bashrc
然后进入你想创建虚拟环境的路径,输入以下命令
mkvirtualenv py3_test 创建成功之后会自动进入该虚拟环境
但是这里默认使用的是 python2 版本指定的虚拟环境,需要使用 python3 版本可以指定版本创建
指定 python 版本创建虚拟环境
mkvirtualenv py3 --python=python
上面使用 --python 参数来指定python 版本,因为 python 这个文件是指向 python3 的,所以可以这样使用,当然你也可以填上你 python3 版本的位置,这时虚拟环境的python 版本就是 3 了。
workon py3_env
5.后台保持运行:
指定日志输出文件:
nohup python -u run.py > run.log 2>&1 &
运行代码:
nohup python run.py
如果想要结束运行,先查看进程:
ps -ef | grep python
看到PID后,kill进程,如:(数字换为你刚刚查到的PID)
kill 654321