Python环境搭建、python项目以docker镜像方式部署到Linux

本文的项目是用Python写的,记录了生成docker镜像,然后整个项目在Linux跑起来的过程:

原文链接:https://msd.misuland.com/pd/3065794831805579512

1、windows中Python环境搭建以及pycharm的安装和配置,用以开发Python项目

这个其实很简单,我从网络上找了一些资源,以下是截图(这块是转的)

(一).python环境的搭建

(1).下载python(这里以python3.6为例)

step 1:打开下载网址:https://www.python.org/downloads/windows/

step 2:我这里选着python3的版本

step 3:选择python的可执行文件安装包

(2).安装python(这里以python3.6为例)     step 1:下载完成后就可以安装了,基本傻瓜式安装,不过要强调几点,如下图(python3.6已经可以自动添加环境变量                     如果你要安装python2那么你手动配置环境变量,具体方法自行百度,这里不做赘述!)

step 2:安装完成后,我们来检查一下python是否安装成功,打开cmd命令,输入python,回车,若显示类似下图,证明环境搭建完成。

step 3:测试输出hello world,从开始菜单打开python自带的IDE,输入如下代码,然后回车。

至此,我们的python环境搭建完成。

(二).pycharm的安装与配置

(1).pycharm的下载

step 1:打开下载网址:http://www.jetbrains.com/pycharm/

step 2:点击下载按钮。

step 3:专业版是收费的,社区版是免费的,并且社区版新手使用足够,我们这里下载社区版。

(2).pycharm的安装

pycharm的安装依然是傻瓜化安装,基本一路next,这里只强调一点

step 2:接下来是一些按照顺序摆放的配置图片。完成pycharm的基本配置

(4).pycharm的python解释器的搭建

同样,接下来是一些按照顺序摆放的配置图片。完成pycharm的python解释器的搭建

(5).pycharm的建立一个新项目

首先打开pycharm,接下来是一些按照顺序摆放的配置图片。完成pycharm的一个项目创建。

至此,pycharm已经全部安装完成。

pycharm中安装组件的方法:

Python中安装bs4后,pycharm报错ModuleNotFoundError: No module named 'bs4'

如果此时使用pycharm执行代码,在引用bs4 “frombs4 import BeautifulSoup”时还会报错“ModuleNotFoundError: Nomodule named 'bs4'.” 未找到名为bs4的模块,这时需要在Pycharm上安装bs4模块来解决,解决方法如下: 1.    File– Setting

Project:Python – Project Interperter

在该页面下会显示执行项目默认的python版本,如图我设置的python版本是python3.6;

还会显示在pycharm上安装的模块,如果执行项目时报错“找不到bs4”,应该是不会显示bs4这个模块的,我安装过,所以会显示。

Install

点击界面右侧的+号,可以打开安装模块界面,在该界面下可以直接搜索并安装相应模块,输入bs4,搜索到对应结果,选择安装模块。

安装完成

安装完成后在界面下方会提示“Package‘bs4’ install successfully”

2、Linux中Python3环境搭建

下载与解压,我这边对应的Python项目所需要的版本,装的是3.7.2

[root@localhost ~]#wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
[root@localhost ~]#tar -xzvf Python-3.7.2.tgz 

然后重命名解压后的文件夹为python3

Python环境搭建成功

3、Python项目Dockerfile准备

我的Python项目结构如下:

平时在pycharm里面运行该工程,只要直接运行job.py文件即可。目标是把Python项目放到Linux系统,以docker镜像方式使用容器启动。

4、cmd进入py项目目录,通过pip命令,生成整个Python项目所需要的环境的包放到requirements.txt

#在当前目录把Python所依赖的组件,列在requirements.txt文件中
pip freeze > requirements.txt

生成后的requirements.txt内容如下:

5、建立上传到Linux系统的目录,含有原py项目目录,以及Dockerfile

我的做法是,是在workspace中,建一个专门的目录docker_py

进入docker_py,可以看到py项目和Dockerfile文件,py项目是拷贝过来的

然后把docker_py目录打zip包,上传至Linux,至于Dockerfile的内容,建议不要在windows编辑,因为在windows编辑,会带有windows的符号,直接在Linux在编辑,或者整个Dockerfile文件也在Linux环境在通过touch方式建立,再编写也OK。

通过命令

rz

上传  docker_py.zip  到 /data/docker/py_app 目录,然后把zip解压到当前目录

unzip docker_py.zip

进入docker_py,编写Dockerfile内容

#基于的基础镜像
FROM python:3.7 #代码添加到code文件夹,后面可以通过进入容器中看的
ADD ./py /code # 设置code文件夹是工作目录
WORKDIR /code # 安装支持
RUN pip install -r requirements.txt #当容器启动时,使用python3执行指定路径的py脚本
CMD ["python3", "/code/venv/Include/job.py"]

6、Linux中把Dockerfile生成镜像

Linux进入docker_py目录,然后docker方式生成镜像

# py_app为创建的镜像名称,. 表示以当前目录的内容生成(docker_py)
docker build -t py_app:2 .

看到上面截图,则镜像构建成功,我们校验一下:

docker images

看到py_app镜像已经成功了

7、Linux中docker_compose方式执行镜像,到Python项目跑起来

进入py_app目录,新建 docker-compose.yml 文件

py:
image: py_app:2
ports:
- "8090:9060"
restart: always

docker-compose.yml编排文件中,image需要与前面构建的镜像名称和版本一致,然后启动项目

[root@localhost py_app]# docker-compose up -d py

至此,搞定了

8、解释下前面Dockerfile设定的工作目录,可以进入容器看

根目录即是code了

Python环境搭建、python项目以docker镜像方式部署到Linux的更多相关文章

  1. Centos系统Python环境搭建和项目部署

    目录 一.Python 1. 源安装 Python3 2. SCL安装 Python3 3. 虚拟环境venv 4. 安装Flask 5. 安装gunicorn 二.安装Nginx 1. 安装Ngin ...

  2. Python简单介绍以及Python环境搭建(入门1)

    转载请标明出处: http://www.cnblogs.com/why168888/p/6400694.html 本文出自:[Edwin博客园] Python 简单介绍 适合领域: Web网站和各种网 ...

  3. Python环境搭建-3 Python下载

    python环境搭建 Python是一个跨平台.可移植的编程语言,因此可在windows.Linux和Mac OS X系统中安装使用. 安装完成后,你会得到Python解释器环境,可以通过终端输入py ...

  4. Docker DevOps实战:Docker+Jenkins+Python+Pytest+Allure(1)- 创建Jenkins容器、安装Python环境、安装项目依赖类库、安装Allure报告插件

    前言: 本文实操笔记参照菠萝笔记,安装过程中的坑大家可以参考下 创建Jenkins容器 # 下载Jenkins镜像 [root@localhost ~]# docker pull jenkins/je ...

  5. Python学习第一弹——Python环境搭建

    一.Python简介: Python,是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年.Python语法简洁而清晰,具有 ...

  6. Python环境搭建(windows)

    Python环境搭建(windows) Python简介 Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是一种面向对象.直译式计算机编程语言,具有近二十年的发展历史,成 ...

  7. selenium win7+selenium2.0+python环境搭建

    win7+selenium2.0+python环境搭建 by:授客 QQ:1033553122 步骤1:下载python 担心最新版的支持不太好,这里我下载的是python 2.7(selenium之 ...

  8. 第一章:起步(python环境搭建)

    Python 环境搭建 学习python的第一步,就是要学习python开发环境的配置,在配置好python开发环境后,你需要再安装一款比较趁手的编辑器,事实上,python解释器本身就可以进行一些编 ...

  9. Python基础入门(1)- Python环境搭建与基础语法

    Python编程环境搭建 Python环境搭建 官网下载:https://www.python.org/ python --version PyCharm下载安装 安装 官网下载:https://ww ...

随机推荐

  1. day50 前端入门

    目录 一.引子 1 前端学习的历程 2 浏览器与http协议 2.1 浏览器窗口输入网址回车后发生了几件事 2.2 http协议 二.html入门 1 标签的分类 2 head内常用的标签 3 bod ...

  2. CSRF攻击原理以及防御方法(写的很好)

    转载地址:http://www.phpddt.com/reprint/csrf.html        CSRF概念:CSRF跨站点请求伪造(Cross—Site Request Forgery),跟 ...

  3. djangorestframework学习1-通过HyperlinkedModelSerializer,ModelViewSet,routers编写第一个接口

    前提首先安装了django,安装方式:pip install django 1. djangorestftamework安装: pip install djangorestframework 2. 创 ...

  4. Python模块03/re模块

    Python模块03/re模块 内容大纲 re模块(正则表达式) 1.re模块(正则表达式) import re s = "meet_宝元_meet" print(re.finda ...

  5. bootstrap中模态框如果放入form表单中会存在的问题

    bootstrap中模态框如果放入form表单中会存在的问题:当模态框显示时,点回车会出现表单自动提交!!!所以在使用模态框的时候要特别注意!

  6. 量子点/钙钛矿 LED的研究概述

    注:参考文献和文章尚在整理ing... 一 常用术语 1.外量子效率(External quantum efficiency,EQE) 这是LED最重要的参数,它的定义为: 因此,EQE越大,发射到外 ...

  7. Python Ethical Hacking - VULNERABILITY SCANNER(7)

    VULNERABILITY_SCANNER How to discover a vulnerability in a web application? 1. Go into every possibl ...

  8. Flutter + Android 混合开发

    JIT (Just In Time) 即时编译器, 边执行边编译 程序运行时,JIT 编译器选择将最频繁执行的方法编译成本地代码.运行时才进行本地代码编译而不是在程序运行前进行编译 AOT可以理解为“ ...

  9. 将音频文件转二进制分包存储到Redis(奇淫技巧操作)

    功能需求: 一.获取本地音频文件,进行解析成二进制数据音频流 二.将音频流转化成byte[]数组,按指定大小字节数进行分包 三.将音频流分成若干个包,以List列表形式缓存到redis数据库中 四.从 ...

  10. windows下nginx问题:[crit] 796#7096: *1 GetFileAttributesEx() "F: ginx-1.12.2\html\dist" failed (123: The filename, directory name, or volume label syntax is incorrect), client: 127.0.0.1, server: localho

    错误信息: 2019/09/09 13:54:37 [crit] 796#7096: *1 GetFileAttributesEx() "F: ginx-1.12.2\html\dist&q ...