当前位置: 首页 > news >正文

网站建设起到计划和指导作用搭建创新平台

网站建设起到计划和指导作用,搭建创新平台,商城网站建设相关费用,做网站视频上传到哪儿需求背景 服务是跑在docker的容器里的,因此要新建image依赖环境是Ubuntu,老的是16.4。 步骤 先准备环境,因为只有你的环境上去了,运行代码的时候才会报错,这样才会把需要改的代码暴露出来。 python3.5目前也是被遗弃的…

需求背景

  1. 服务是跑在docker的容器里的,因此要新建image
  2. 依赖环境是Ubuntu,老的是16.4。

步骤

先准备环境,因为只有你的环境上去了,运行代码的时候才会报错,这样才会把需要改的代码暴露出来。
python3.5目前也是被遗弃的状态,我不升级3.9是因为Ubuntu20.4自带python3.8,之前自己安装3.9各种报错

python环境升级
dockerfile所在目录

sources.list是对应的Ubuntu的阿里镜像源(这个镜像也可以是清华的,只要和Ubuntu的版本对应起来即可)
对应关系在这里

#ubuntu20.4的阿里镜像源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiversedeb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

requirements.txt是项目所需的一些依赖库

#requirements.txt 项目所需的一些依赖库
appdirs==1.4.4
cryptography==3.3.1
ecdsa==0.14.1
Flask==1.1.2
Flask-Cors==3.0.10
Flask-JWT==0.3.2
Flask-PyMongo==2.3.0
future==0.18.2
idna==2.10
ipaddress==1.0.23
itsdangerous==1.1.0
Jinja2==2.11.2
MarkupSafe==1.1.1
packaging==20.8
pyasn1==0.4.8
pycparser==2.20
pycrypto==2.6.1
PyInstaller==4.1
.
.
.

dockerfile文件里的东西也很简单,就安装一些项目需要的就可以了

FROM ubuntu:20.04
#更新ubuntu的软件源-draven,sources.list中的镜像要和ubuntu的版本对应起来
COPY ./sources.list /etc/apt/sources.list
RUN  apt-get update# 建立工作目录 /app
WORKDIR /home/workspace
ENV WORKSPACE /home/workspace
# 将当前文件所在的目录下的所有文件 copy 到工作目录
COPY . /home/workspace
RUN mkdir -p /home/requirements && chmod -R 777 /home/requirements
COPY requirements.txt /home/requirements/#设置时区
RUN apt-get install tzdata -y
RUN echo "Asia/Shanghai" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && rm /etc/timezone && echo "Asia/Shanghai" >> /etc/timezone
RUN date
#设置忽略警告信息
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get install --assume-yes apt-utilsRUN apt-get install curl -y
RUN apt-get install -y apt-transport-httpsRUN echo -n | openssl s_client -connect www.mobibrw.com:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' |  tee '/usr/local/share/ca-certificates/www_mobibrw_com.crt'
RUN update-ca-certificates
RUN apt-get install -y gcc g++ makeRUN apt-get install python3-pip -y
RUN pip3 install --upgrade pip
RUN apt-get install vim -y
RUN apt-get install libssl-dev -y
RUN apt-get install libffi-dev
#提前把项目需要的依赖库安装在python的site-packages,pip会自动完成
RUN pip3 install -r requirements.txtRUN apt-get install nodejs -y
RUN apt-get install npm -y
然后准备工作做好了,cd到dockerfile所在目录,执行如下命令

docker build -t yourImageName:yourVersioninfo .
其中最后的这个点是表示在当前目录
然后就是耐心的等待,一层一层的layer嵌套

至此我们的环境就准备好了,其实上述的结果都是我经过不停的尝试和摸索的结果

  • 刚开始我不知道Ubuntu20.4默认安装python3.8,且没有python2.7,然后自己一顿安装python3.5和3.9
  • 不知道docker image的制作,就把老的image拿来改,结果费煞苦心还不好使,python各种依赖包错误,改项目的python代码也是各种报错(知道原理后,直接整新的image比较好)
    *环境装好之后 要在容器中去看python的版本信息,常用命令
    whereis python 可以看python的安装目录信息,版本信息
    pip -V 或者pip3 -V 查看pip的信息
  • 还有就是如果python3如果是你手动安装的,不要折腾软连接了,把对应编译代码的命令改了就行
python代码修改

具体python2.7的代码修改网上已经有很多了,百度就够了
这里就记录下自己遇到的几点问题

  • python的字符串问题
    主要体现在print函数,这个python的那个2-3框架可以做,自己手动改也OK,我项目中这样的代码不是很多
  • 编码解码问题
    python3.5之后采用的是Unicode编码,其中string和bytes是我遇到问题最多的场景

如果报错b'myString' XXXX 基本就是说需要一个字符串,但是你给了个bytes[]
如果报错decode或者encode的参数不对,再或者是序列化不对,也基本是python3升级后的语法变化,具体错误看trace call然后基本都能搞定

总结

这次一个很小的一个后台管理系统的服务端项目升级,我差不多花了10天的时间
1.python不熟,早点用pycharm修改代码会快很多
2.docker也不熟,以前只是启container,在里面操作
3.这次摸了这些石头,下次过河应该就会轻松很多

截屏2021-01-07上午11.17.16.png

可以看到上图中各种版本的image都有,python3.5的,3.8,web专用的
其中的none就是在build image的时候那一行命令对应的一层,如果某条命令失败了,重新build即可,因为之前的layer还在,这个docker的设计还是很棒的

最后编辑于:2024-10-01 17:48:35


喜欢的朋友记得点赞、收藏、关注哦!!!

http://www.yayakq.cn/news/449649/

相关文章:

  • cms 多个网站建网站和建网页的区别
  • 哪个网站可以做英文兼职网站的关键词在哪设置
  • 网站建设维护保密协议有哪些做平面设计好的网站有哪些内容
  • phpstudy怎么做网站厦门的服装商城网站建设
  • 综合网站系统网站什么也没动怎么不收录啦
  • 网站模版怎么样关于网站建设方案
  • 小江网站建设网络营销外包推广系统
  • 进一步加大网站集约化建设力度论坛网站建设视频
  • 免费做优化的网站建设长春比较有名的做网站建设
  • 公路水运建设质量与安全监督系统网站太原自学网站建设
  • 自适应网站平台外贸网站推广上海
  • 公司做网站算什么费用集团网站信息建设情况
  • 北京朝阳网站太原seo团队
  • 中国建设银行网站首页旧版今天的新闻直播
  • 用php做的网站跨境电商主要平台有哪些
  • 微信网页上的网站怎么做的百姓网招聘信息最新招聘
  • 怎么做钓鱼网站呢毕业设计指导网站建设
  • 地板网站建设图片网站收录
  • 租一个国外的服务器 建设网站软件开发一天收费多少
  • 银川网站seo小企业广告投放平台
  • 企业做网站的方案网站开发类标书报价明细表
  • 课程网站开发流程图及原型图大连网站制作怎么做
  • 宣城 网站建设网站类型后缀
  • 招标网官方网站建设执业资格注册中心网站办事大厅
  • 怎么促成客户做网站广州网络营销类岗位
  • 手机网站设计尺寸毫米睢宁县建设局网站
  • 网站域名推广linux怎么使用wordpress
  • 网站中的二级菜单怎么做23济南好的网站建设公司哪家好
  • 长乐区建设局网站青岛网络推广公司哪家好
  • php企业网站多少钱中国最早做网站是谁