next
pycharm使用docker容器中的python环境
type
Post
status
Published
date
Jun 19, 2022
slug
pycahrm-1
summary
pycharm使用docker容器环境中的python编译器
tags
Python
pycharm
docker
category
技术工具
icon
password
Property
Jun 19, 2022 01:27 PM
Pycharm使用docker中的python环境,不mess操作系统

🤔 Pycharm使用docker中的python环境

  1. 背景
    1. 结果

      📝内容

      1.pull相关容器

      在docker hub中找到对应的容器,并pull到本地,或者自己在本地制作相关容器,这里以watcher_engine为例
      # docker pull kolla/centos-binary-watcher-engine:rocky

      2.将pycharm项目运行环境指定到容器

      a.打开pycharm,打开要是用的项目,然后command+,打开设置
      notion image
      python建立httpserver的几种方式
      type
      Post
      status
      Published
      date
      Jun 19, 2022
      slug
      python-1
      summary
      介绍几种python启动http server的几种方式
      tags
      Python
      开发
      category
      技术分享
      icon
      password
      Property
      Jun 19, 2022 04:00 PM
      原创

      🤔 如果我们想启动一个http server

      1. 使用python我们可以怎么实现

        📝实现http server

        wsgiref

        python内置的简单的wsgi(Python Web Server Gateway Interface)的实现
        一次只能接收一个请求
        # coding:utf-8 from wsgiref.simple_server import make_server import time def my_handler(environ, start_response): request_method = environ['REQUEST_METHOD'] if request_method == 'GET': if environ['PATH_INFO'] == "/": # 'QUERY_STRING': 'ha=1&oo=m' params = environ['QUERY_STRING'] if params: qurrys = params.split('&') qs = (q.split("=") for q in qurrys) print(list(qs)) token = "" if 'HTTP_X_AUTH_TOKEN' not in environ else environ['HTTP_X_AUTH_TOKEN'] # 第一个参数必须是至少两个用空格分开的内容 # 第二个参数是headers start_response("202 OK", [("content-type","text/json")]) time.sleep(100) return "Hello World %s" % token elif environ['PATH_INFO'] == "/hi": start_response("202 OK", [("content-type","text/plain")]) return "Hello 00" else: start_response("404 NOT FOUND", [("content-type","text/plain")]) return "404 NOT FOUND" elif request_method == "POST": start_response("202 OK", [("content-type","text/plain")]) return "Hello POST" else: start_response("404 NOT FOUND", [("content-type","text/plain")]) return "404 NOT FOUND" server = make_server("0.0.0.0", 8888, my_handler) # 单任务的,一个请求处理完才会处理另外一个请求 server.serve_forever()

        eventlet

        import eventlet eventlet.monkeypatch() from eventlet import wsgi def hello_world(env, start_response): print(env) start_response('200 OK', [('Content-Type', 'text/plain')]) return ['Hello, World!\r\n'] def run_service_world(listen_fd): try: # 内部使用绿色线程池来处理请求,一个请求遇到io操作时, # 另外一个请求到来,会处理该请求,不会被阻塞 wsgi.server(listen_fd, site=hello_world) except Exception as e: print("Error starting thread.") raise listen_fd1 = eventlet.listen(("", 8090)) run_service_world(listen_fd1)

        🤗总结归纳

        使用Anaconda作为操作系统安装程序的分区原则
        type
        Post
        status
        Published
        date
        Jun 16, 2022
        slug
        anaconda-partition
        summary
        Anaconda和blivet分区规则
        tags
        工具
        category
        技术分享
        icon
        password
        Property
        Jun 18, 2022 08:25 AM
        使用CentOS iso安装操作系统时,自动分区时,CentOS官网说的swap大小规则如下图,但是在自己测试时,并不会完全按照图里来,遂去看了pyanaconda和blivet的源码,得出本文内容。
        notion image
        关于图中的RAM来源:
        • anaconda安装程序通过blivet获取total memory
        • blivet读取操作系统运行时的 /proc/meminfo里的MemTotal值,其值是物理内存减去内核二进制代码后的值,并进行以下换算
        total_mem = (MemTotal/128+1)*128
        • anaconda拿到这个值后,还会做下转换
        mem = (mem1/16+1)*16
        也就是在安装系统时,mem是比物理内存小。 实测物理内存大于等于66G时,会满足最后一档,也就是自动分区时,swap是4G 物理内存等于64G时,满足的是倒数第二档,swap是取硬盘容量的10%与物理内存一半的最小值
        示例文章1
        type
        Post
        status
        Published
        date
        Nov 5, 2021
        slug
        example-1
        summary
        这是示例的文章摘要,摘要内容可被用做搜索,预览。文章列表默认展示概要;若要在列表直接展示文章内容,可在blog.config.js中配置。
        tags
        思考
        建站
        category
        学习思考
        icon
        password
        Property
        Jun 15, 2022 04:49 PM

        一、模板使用说明

        Notion页面中,每一篇文章都有以下属性🤔:
         

        二、示例段落

        💡
        生活的意义并不是与他人争高下,而在于享受努力实现目标的过程,结果只是对自己行动的嘉奖。
        图片标题
        图片标题

        1.将进酒

        君不见黄河之水天上来,奔流到海不复回。 君不见高堂明镜悲白发,朝如青丝暮成雪。 人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。 烹羊宰牛且为乐,会须一饮三百杯。 岑夫子,丹丘生,将进酒,杯莫停。 与君歌一曲,请君为我倾耳听。 钟鼓馔玉不足贵,但愿长醉不愿醒。 古来圣贤皆寂寞,惟有饮者留其名。 陈王昔时宴平乐,斗酒十千恣欢谑。 主人何为言少钱,径须沽取对君酌。 五花马、千金裘,呼儿将出换美酒,与尔同销万古愁。

        2.代码