
Python
lin-chang
这个作者很懒,什么都没留下…
展开
-
虚惊一场,数据库频繁重启的原因竟然是...
昨天下午2点多,突然接到反馈,说我负责维护的工具平台挂了于是我自己试了一下登录那个平台,发现能正常登录啊,猜想是个别用户的问题(因为之前也有过类似的经历,只有单个用户反馈说访问不了某个资源,后来查到是他自己电脑本地的环境改了)。在查的过程中又收到另一个项目组的反馈,这时候觉得不是个别用户的问题了。自己再刷新一下网页,发现自己也登录不了的。由于这个平台是公司内部使用,我的Django就开了Debug模式,可以直接看到报错信息:依照上图这个报错,猜想应该是MySQL挂掉了。于是尝试登原创 2020-05-28 10:03:21 · 1228 阅读 · 0 评论 -
502 Bad Gatway错误排查复盘
用户反馈有人无法登陆网站(他自己可以登录,但另一个用户不行)显示502 Bad Gateway查了一下Log,看到invalid request block size: 5018 (max 4096)...skip网上搜了一下,在https://www.cnblogs.com/dhcn/p/7115325.html这篇文章里找到答案原因:默认的uwsgi分配一个小的buffer(4k)来接收每个请求的头信息,如果在日志中看见"invalid request block size",它意味原创 2020-05-18 11:47:16 · 354 阅读 · 0 评论 -
Win10激活virtualenv问题及解决方案
在Win10 上面激活virtualenv的时候执行venv\scripts\activate 会报错错误信息:无法加载文件 D:...\venv\scripts\activate.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=135170中的 about_Execution_Policies...原创 2019-08-18 15:07:44 · 4853 阅读 · 1 评论 -
Django+uwsgi+Nginx 504 Gateway Time out
遇到504错误,加了好多打印信息,发现打印出来都没毛病。接着猜想是正式环境的数据和本地测试环境的数据不一样,又把正式环境的数据导回到本地测试,结果发现两者打印信息一模一样,但本地就可以正常打开网页,而正式环境就报504错误。在对比了日志之后,发现正式环境的日志打到了某一处就没了,猜想这个时候应该是某个超时机制生效导致程序不再往下走了。一开始找了好多答案,有说nginx.conf里设...原创 2019-06-09 16:56:58 · 1373 阅读 · 0 评论 -
Pyinstaller生成exe报错:No module named Tkinter
问题:使用python的tkinter库做了一个工具,由于要给非技术人员使用,并不是每个人的电脑里都装了Python,所以需要把py文件编译成小白也能用的exe文件。使用Pyinstaller将py文件生成为exe文件后,运行exe报错:No module named Tkinter解决方法:加上--hidden-import=tkinter参数,即pyinstaller --...原创 2019-04-14 21:15:23 · 1793 阅读 · 1 评论 -
Windows下Python3安装MySQL模块报错: Could not find a version that satisfies the requirement MySQLdb
环境:Windows 64位 Python 3使用pip install MySQLdb的时候报错:Could not find a version that satisfies the requirement MySQLdb (from versions: )No matching distribution found for MySQLdb百度了一下,说是Python3不支...原创 2019-03-03 19:04:30 · 13189 阅读 · 2 评论 -
Python里处理文件with open写法的由来
使用python读写文件,一开始我们用的是:f = open('test.txt', 'r')f.read()最后一步是调用close()方法关闭文件f.close()如果打开报错IOError,那后面的close也不会执行,因此,我们可以使用try语句来容错:try: f = open('/path/to/file', 'r') print(f.re...原创 2019-02-12 21:15:00 · 559 阅读 · 0 评论 -
删除排序数组中的重复项
思路:遍历数组,如果当前值跟前面的值相等,则删除当前元素,如果不等,说明不是重复元素,则继续遍历下一个元素class Solution(object): def removeDuplicates(self, nums): """ :type nums: List[int] :rtype: int """ ...原创 2018-12-30 19:03:35 · 156 阅读 · 0 评论 -
合并两个有序链表
思路:先选出第一个节点,然后遍历两个链表,把小的作为当前节点的下一个节点,一直到其中一个链表遍历完,这时候把另一个链表直接接上就好# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self....原创 2018-12-30 18:05:42 · 123 阅读 · 0 评论 -
有效的括号
思路:用一个字符串来模拟入栈和出栈,如果是左括号则入栈,如果是右括号则出栈,如果是一个有效的括号,那么最终这个栈一定是空的class Solution(object): def isValid(self, s): """ :type s: str :rtype: bool """ if not s:...原创 2018-12-30 17:36:54 · 133 阅读 · 0 评论 -
求一批字符串的最长公共前缀
思路一:这个题一拿到手,第一反应就是以第一个字符串strs[0]为标准,如果其他字符串的第一个字符和str[0]的第一个字符串相同,则再比较第二个字符串,以此类推直到出现不同为止。def longestCommonPrefix(self, strs): """ :type strs: List[str] :rtype: str ...原创 2018-12-07 22:51:43 · 2557 阅读 · 1 评论 -
罗马数字转整数
其实只要弄懂原理,实现起来非常简单:首先建立一个字典来映射符号和值,然后对字符串从左到右来,如果当前字符代表的值不小于其右边,就加上该值;否则就减去该值。以此类推,最终得到的结果即是答案。def romanToInt(self, s): """ :type s: str :rtype: int """ a =...原创 2018-12-07 21:36:02 · 153 阅读 · 0 评论 -
整数翻转
class Solution(object): #考虑到数字尾数存在0,去除字符串后面的0 def excludeZero(self,x): if x.endswith("0"): x = x[:-1] return self.excludeZero(x) return x ...原创 2018-11-30 22:54:22 · 169 阅读 · 0 评论 -
判断一个整数是否是回文数
第一个思路是先将整数转换为字符串,再将字符串翻转并与原字符串做比较def isPalindrome(self, x): """ :type x: int :rtype: bool """ #思路:先将整数转换为字符串,再将字符串翻转并与原字符串做比较 x = str(x) re...原创 2018-12-02 23:36:46 · 401 阅读 · 0 评论 -
两数之和
方法一:暴力法时间复杂度:N平方空间复杂度:1思路:遍历列表,对比这个元素后面有没有满足的元素def twoSum(self, nums, target): #暴力方法,复杂度n的平方 for i in range(0,len(nums)-1): a = nums[i] for j in r...原创 2018-12-02 18:32:07 · 149 阅读 · 0 评论 -
Python3 zip()函数的坑
最近在学习谷歌机器学习框架TensorFlow遇到一个特征工程的处理函数调用第一次的时候打印结果是正确的,就是这句selected_training_examples = select_and_transform_features(training_examples)而执行这句selected_validation_examples = select_and_transfo...原创 2018-10-28 22:29:17 · 1594 阅读 · 1 评论 -
Django新建工程报错找不到文件
按照Django教材,使用django-admin.py startproject projectname来创建工程在window上会报错:no such file or directorydjango-admin后面的py去掉就正常了原创 2017-03-26 16:18:30 · 991 阅读 · 0 评论 -
Python合并两个有序列表
思路:定义一个新的空列表比较两个列表的首个元素小的就插入到新列表里把已经插入新列表的元素从旧列表删除直到两个旧列表有一个为空再把旧列表加到新列表后面def loop_merge_sort(l1, l2): tmp = [] while len(l1) > 0 and len(l2) > 0: if l1[0]转载 2016-10-22 21:16:49 · 2934 阅读 · 0 评论