python程序在自己的编译环境中调试好了之后就要上服务器部署了,想想很多工程师其实没有端到端的交付能力的,也就是自己写的程序是不知道怎么在服务器上完成部署测试的,这也是IT分工细致导致的,分工意味着专业化,但是分工也意味着创新创意的损耗,就像富士康某个工位上的组装工人;那苹果的高级工程师在优化生产,做良品率提高的工程的时候,苹果的工程师也是一个岗位一个人吗? 显然不是,那位苹果工程师一定是深入所有的岗位,站在全局纵览全生产流程的优化。
今天我们就从把程序部署到线上的过程,总结下一个程序想要在服务器上跑起来都需要做什么
一般linux服务器上都是和外网隔离的,所以常规的pip下载包就不行了,你需要先把第三方包下载好,比如我这次需要import的包有下面这些:
import requests
import json
import mysql.connector
import logging
from apscheduler.schedulers.backgroundimport BlockingScheduler
其中这里头只有 mysql.connector 和 apscheduler的包是需要单独下载的
我在下第三方包习惯从豆瓣的pypi站点下载,网址是这个:https://pypi.doubanio.com/simple/
比如,我现在要下载mysql.connector,我只需要在后面加上mysql-connector就好了https://pypi.doubanio.com/simple/mysql-connector

然后我们把下载好的第三方包上传到服务器上,上传完成后在服务器上是这样的:

然后我们在这个目录下使用pip3 命令安装
pip3 install mysql-connector-2.2.9.tar.gz

然后看报错,我们知道了少了python的一个模块:ctypes
然后网上查了资料,这个包的缺失需要安装libffi-devel包,我在安装这个包的时候出现了包的冲突,因为是阿里云特殊定制的版本,所以我忽略了依赖把这个包装上了
rpm -ivh libffi-devel --nodeps
然后重新编译python就ok了
网友评论