标签: python

Python多线程多进程中的几个坑

Introduction 本文系转载,原文:今天遇到的Python多线程、多进程中的几个坑   今天在写oj的判题端的时候犯了一个低级错误,就是为了加快判题速度,我就采用了多线程多组用例同时运行的方法,但是后来不经意的发现,明明跑的很快的程序到了我这实际运行时间就变成了好几倍,而cpu时间并没有太大的变化。 我开始怀疑是runner的问题,因为以前使用ptrace的runner的时候,ptrace会在进程用户态和内核态之间反复的检查,导致程序运行缓慢。但是我手动的使用命令行启动runn...

我常用的几个源加速更新

Introduction 本文记录了几个我常用的Linux、Python更新源。 Linux 教育网一般用中科大的源 http://ipv6.mirrors.ustc.edu.cn/ 如果是ubuntu或者kali同时你是山大的同学,可以选择山大的源 https://mirror.sdu.edu.cn/ 源的配置生成器 https://mirrors.ustc.edu.cn/repogen/ debiancn社区的源可以作为补充,添加到源里(已经被中科大收录) http://ipv6.mirro...

在Nginx上部署Python Flask应用

1. Introduction 本文主要系翻译自digitalocean的教程How To Serve Flask Applications with uWSGI and Nginx on Ubuntu 16.04,部分进行了修改。 主要介绍了在nginx服务器上利用uWSGI部署Flask应用的步骤。 之前写过的相关内容: uwsgi配置https以及python2无法使用supervisor nginx配置https 2. 准备工作 在开始之前,先确保有一个非root的用户部署在你的服务器上...

Linux下Pycharm配置pyqt5开发环境

Introduction PyQt是Python语言的GUI编程解决方案之一。可以用来代替Python内置的Tkinter。其它替代者还有PyGTK、wxPython等。与Qt一样,PyQt是一个自由软件。 在Linux下使用pycharm写python是最舒服的。本文介绍了Linux下pycharm qt5开发环境的配置。 安装pyqt # 直接安装所有包即可,不大 sudo apt-get install pyqt5* 安装qt designer qt的designer被集成到了qt cre...

Python Socket传输文件不完整

Introduction 嵌入式课程的实验正在加紧写,做的是树莓派小车。写完以后准备写个专辑文章。本文说明的python socket传输文件不完整问题,就是在小车(server)向PC(client)传输图像文件时产生的。记录下问题的发现和解决。 问题发现 在使用python3 socket进行传输图片时,文件不完整,源文件有28KB的大小,但是传输到PC上的数据写到文件里,不足28KB。 猜测 一开始猜测是server发送有问题: with open('/home/pi/motion...

python httpserver 添加ipv6的支持

Introduction 原来写过Python救急HttpServer和Ftpserver,来一句话迅速建立一个httpserver,供文件传输,但是只支持单线程,后续更新了下python多线程启动httpserver,但是仍然不支持ipv6,现在继续添加对ipv6支持的方法。教育网一般都支持ipv6,走ipv6一般都可以到100Mbps的极限(10MB/s左右),搬瓦工VPS支持ipv6,这样可以充分利用vps的网络速度,一般搬瓦工的下载速度可以到50MB/s,就算再通过ipv6传回来,速度加...

python多线程启动httpserver

Introduction 之前写过一篇Python救急HttpServer和Ftpserver,简单描述了如何开启python内置的httpserver,但是内置的是单线程的,同时只能允许一个人访问。本文则提供了简单的多线程开启httpserver的例程。 Show me the code import os from threading import Thread import time port_number = "8000" def run_on(port): os.s...

python configparser读取配置文件大小写问题

Introduction 在使用python2 configparser读取ini配置文件的时候,发现没法保留配置文件大小写,经搜索发现如下两种方法。同时也发现了python2和python3的configparser的一些小区别。 保留配置文件大小写 ConfigParse源码里有这样一段: def optionxform(self, optionstr): return optionstr.lower() 所以最后统一返回的是小写。 1.直接修改源码 可以直接在/usr/lib/python...

Gem5 安装记录

Introduction GEM5是一款模块化的离散事件驱动全系统模拟器,它结合了M5和GEMS中最优秀的部分,是一款高度可配置、集成多种ISA和多种CPU模型的体系结构模拟器 本文记录了我安装gem5安装的过程。我的所有压缩包都放在了~/gem5/下,最后安装出来的路径是~/gem5/gem5-stable,你可以根据自己的情况执行下面的命令所有的压缩包都在这里:gem5的百度云分享里面还有个很好的入门教程gem5_hipeac.pdf 安装步骤 sudo apt-get update # 安...

python爬虫学习(六)requests 关于cookie的堪误

Introducation Python爬虫学习目录 本文修正了关于前段时间对于requests自动保存cookies和header的使用错误。 requests python有个库是requests,比更底层的urllib等更加方便简易。而且自带管理cookie,headers等功能。在python爬虫学习(四)获取cookie中,简单介绍了获取cookie的方法,而实际上,requests会自动管理cookies。在通过requests get或者post网页之后,如果是第一次访问某些页面,...