入坑合集

1、ValueError: Incompatible indexer with Series

一般是dataframe的index有重复的情况,没办法直接赋值。

2、SQL语句:"SELECT * FROM base_events WHERE pub_time between '%s' and '%s'"%(start_time, end_time) ---- %s要加单引号

3、Object of type 'int64' is not JSON serializable

原因:实际类型是np.int64,json无法处理。

解决办法:

````

class MyEncoder(json.JSONEncoder):

        def default(self, obj):

                if isinstance(obj, np.integer):

                        return int(obj)

               elif isinstance(obj, np.floating):

                        return float(obj)

               elif isinstance(obj, np.ndarray):

                        return obj.tolist()

              else:

                    return super(MyEncoder, self).default(obj)


def write_client_datafile_json(target_dir_path, file_name, postfix, ret_content):

        if not os.path.exists(target_dir_path):

                os.makedirs(target_dir_path)

        with open(target_dir_path + file_name + postfix, 'w')as outfile:

                json.dump(ret_content, outfile, cls=MyEncoder)

        return

4、time.strftime("%Y-%m-%d %H:%M:%S")  --直接返回当前时间

5、Can't convert 'bytes' object to str implicitly

roundtrip = by.decode('big5')

6、ImportError: cannot import name 'NUMPY_MKL'

解决方法:This problem can be easy solved by installation for numpy+mkl from whl file from: https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy

7、SyntaxError:Non-UTF-8 code starting with '\xe8' in file

解决方法: # coding: utf-8 ——是:不是=!!!

8、KeyError: '1'

原因:dict的key不存在的时候会抛出异常

解决方法:

content = {}

content = collections.defaultdict(list, content)  ——定义content的每个key对应的value都默认是list类型

for line in source:

    line = line.strip()+'\t'+'__label__'+str(labels[i])

    result1.write(line+'\n')

    content[str(labels[i])].append(line)

    i +=1

9、str.startswith/endswith()里的参数只是字符串,不能用正则!!

可以用:re.search('^\d+', str)

10、pycharm替换:ctrl+R

11、一个元素都为dict的list,按照dict的某个value排序:

# 先按time排序

lst.sort(key=lambda k: (k.get('time', 0)))

# 再按照level和star顺序

# reverse=True表示反序排列,默认正序排列

lst.sort(key=lambda k: (k.get('level', 0), k.get('star', 0)), reverse=True)

注意:不能用lst2 = lst.sort(...)的形式,lst2会是None!!!

list.sort()函数执行后,原有list排序直接变化!!  // 同理可得:list.extend 后,也是原有list直接变化,不可用 list2 = list1.extend(list0)的形式,试图赋给list2,list2在这里还是NoneType 

12、ValueError: Must have equal len keys and value when setting with an iterable

原因:我想把list类型赋到dataframe的一个cell中

解决办法:

df = pd.DataFrame(np.zeros((4,4)))

 df = df.astype('object')

这样做了以后,list类型可以存到df的某个cell,并且提出这个cell时,可以迭代取其元素(而不是以str的方式存进cell)

13、csv打开是乱码格式

解决办法:用notepad++转码为:带bom头的utf-8格式

或者存储时用:df_new.to_csv(file_path+file_name, encoding='utf-8-sig')

14、避免dict指针改后更改原值

解决办法:

【法一】 ——这是错的!!!

from copy import deepcopy

for data_dict in pub_map:

    data_dict["data"] = gov_code_str +'/' + data_dict["data"]   —— 改变了pub_map本身的内容, 后面程序还会用到pub_map时就会出错。比如如果外嵌了gov_code的循环,则pub_map里每个元素的data_dict["datas"]变成了加循环了所有的gov_code_str.

    data_dict_list.append(deepcopy(data_dict))

【法一】——正确操作

from copy import deepcopy

for data_dict in pub_map:

    data_dict_new = deepcopy(data_dict)   // 这一步先把元素深拷贝出来

    data_dict_new["datas"] = gov_code_str + '/' + data_dict["datas"]  // 仅更改拷贝出来的元素

    data_dict_list.append(data_dict_new)

【法二】

for i in range(len(pub_map)):

    data_dict = {}

    data_dict["data"] = gov_code_str +'/' + pub_map[i]["data"]

    data_dict_list.append(deepcopy(data_dict))


15、关于指针 —— hin重要!!!

错误一:

data_dict_new在外面改变内容(指针没变), 原本加入list的data_dict_new内容也改变(因为指针没变)

错误二:

data_dict_new=data_dict这一步是指针赋予,于是之后更改data_dict_new指向的内容,也改变了原本pub_map里的指针指向的内容

正确解法一:

每次新定义一个字典(空指针)——data_dict_new={}

正确解法二(更方便):

深拷贝即相当于赋予新指针,但指向的内容与原指针指向的内容相同;此时更改新指针指向的内容,不会改变原指针指向的内容。

注意: int, float, bool,(string)几个类型是值变量型(因此在循环中只生成临时对象,不改变原对象的值);而字典、数组等结构变量名即是指针。ps:用id(i)查看变量地址可辅助理解。eg:

整型变量更改,生成临时对象,不改变原对象


临时对象i的地址是:46197872,原list各元素的地址是:46197872,46198096,46372040,。不同于临时对象。


可见data_dict不是临时生成的对象,该指针地址与原list中的各元素地址相同。

16、史上最崩溃的一次装包!!!——pyfasttext

需要先装cysignals,然而一直报错,找不到指定文件!!!:::

网上pyfasttext和cysignals的安装教程太太少!!!还去查了bdist_wheel...


一直报找不到指定文件!!!完全不知道为神马!!!病急乱投医还去upgrade了setuptool和pip啊尼玛!!!

折腾了一两个小时吧。最后看到virtualenv突然灵光一闪。。。尼玛fasttext是在虚拟环境跑的啊!@@我在Windows下装个毛啊啊啊啊啊啊!!!!!

最后在Ubuntu下,加了sudo,成功装了cysignals,和pyfasttext,泪目,不想说话T0T...


装的过程中内心os好多遍:我大概还是不适合这一行的吧T0T,我为何这么笨T0T,都不敢问智奇怕被鄙视啊T0T。Anyway,finally I made it!!!T0T

路还长,继续加油,都会过的T0T...

结果还是被他发现搞这个搞了这么久了!!!沮丧!@!@@@!!!!!

17、

File "fasttext/fasttext.pyx", line 146, in fasttext.fasttext.load_model

ValueError: fastText: trained model cannot be opened!

原因:训练模型太大,fasttext load不出来

解决办法:传说用pyfasttext,我还没试,试过后来更。。。

更崩溃的事发生了:才发现是我把模型路径写错了。。。fasttext找不到所以load不了。。。。改了pyfasttext也报错于是才发现的。。。想哭T0T。。。为什么明明技术就不行!还那么粗心老是给自己找麻烦呢!!!

18、

RuntimeError:fastexttriedtoexit:1

原因:The fastText source code directly calls exit() when something wrong happens (e.g. a model file does not exist, …).

Instead of exiting, pyfasttext raises a Python exception (RuntimeError).//模型不存在

19、

series-objects-are-mutable-thus-they-cannot-be-hashed

原因:df_normal[df_normal[score]==0, score] = df_normal[df_normal[score]>0][score].mean()

解决办法:df_normal.loc[df_normal[score]==0, score] = df_normal[df_normal[score]>0][score].mean()

20、url编码问题 _python3的编码问题之后详细总结一下

url中的query带有特殊字符(不是url的保留字)时需要进行编码。当url中带有汉字时,需要特殊的处理才能正确编码,以下都只针对这种情形,当然也适用于纯英文字符的url。

(1) url编码:—— seems python2.x

import urllib

url ='http://test.com/s?wd=哈哈'  #如果此网站编码是gbk的话,需要进行解码,从gbk解码成unicode,再从Unicode编码编码为utf-8格式。

url = url.decode('gbk','replace')

print urllib.quote(url.encode('utf-8','replace'))

结果: http%3a%2f%2ftest.com%2fs%3fwd%3d%e5%93%88%e5%93%88

(2)


21、 字符编码问题??


22、UnicodeEncodeError: 'gbk' codec can't encode character '\U0001f525' in position


报错信息

问题原因:出现在插入数据库的时候,总是插不进去,因为有特殊字符:🔥,编码是——\U0001f525;pycharm系统环境是utf-8,可以兼容这个

字符, 但是插数据库时(好像?)需要转为‘gbk’, 而gbk不能识别这个字符,所以插不进去,报错。

解决方法:入库前转一遍字符:df_temp['content'] = df_temp['content'].apply(lambda x:x.encode('gbk', 'ignore').decode('gbk')),转为gbk的字符系统,encode时忽略错误字符就好了。不过数据库的字符集为什么必须是gbk??难道不是utf-8吗??明天问一下李科。。。(一会儿行一会儿不行。。。好烦)

疑惑:后来发现,只要把插入内容中的单引号换成两个单引号,即使不改gbk编码,也能插进数据库了= = 。。totally confused了, 难道不是编码的问题??

请教智奇后的另一种思路:入库时,是Python编译器客户端的编码问题,而不是数据库(客户端/服务端)的编码问题。

网上参考相关回答:

问题是这样的,网页的数据应该是'utf-8'编码,这个可以在网页的head上面看得到,然后你爬网页的时候会把它转化成Unicode,出问题的是在print()这儿,对于print()这个函数,他需要把内容转化为'gbk'编码才能显示出来. 然后解决办法是这样,你在转化后的Unicode编码的string后面,加上 .encode('GBK','ignore').decode('GBk') 也就是先用gbk编码,忽略掉非法字符,然后再译码,是不是很有道理 应该是这样的,因为我和你遇到同样的问题,现在解决了。

对于插数据库,可在连接时设置client_encoding = 'utf-8', 就和写文件时需要加encoding='utf-8'一样:

conn = psycopg2.connect(dbname=db, user=self.user, password=self.pwd, host=self.host, port=self.port, client_encoding='utf-8')

open(file, 'w', encoding='utf-8')

最终问题想清楚了!!!:

1、插不进数据库,不是因为编码问题,是因为一开始我并没有替换掉微博内容里的单引号——‘/’/'。而单引号在数据库里是有特殊含义的,所以入库前必须——法1)转义:\' 并且 插入时加 E(明天再跟智奇确认一下这个方法)  法2)替换成两个单引号 ''(参见23)

2、恰好这条微博里有单引号无法插入,同时也有GBK识别不了的特殊字符,而我在入库报错时要求输出原因:

执行报错

而插入报错的情况,一般会输入内容,并指示在哪里有问题,如:

错误信息示例

而python里的print()又习惯性(???这是另一个问题了。。)的试图将内容转为GBK再输出,于是就报错了~~~(因为有识别不了的特殊字符)

所以上面的疑惑也解决了,替换单引号之后,不会再报插入不了的错,就不会要求打印错误信息,也就不会出现gbk encode的错误了。因为无论是python内部环境还是数据库的环境,都已经设置好了utf-8的编码格式,只要不打印,完全不会出问题。

所以为什么,print()会习惯性地要转为gbk呢???【话说我也在py文件头设置了  #coding:utf-8  呀,哎,算了算了,保险起见,还是加上下面的sys.stdout方法吧】

其实print()函数的局限就是Python默认编码的局限,因为系统是win7的,python的默认编码不是’utf-8’,改一下python的默认编码成’utf-8’就:

sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') #改变标准输出的默认编码

或者:sys.stdout= codecs.getwriter('utf-8')(sys.stdout)

【在cmd下运行该脚本会有乱码,而在IDLE下运行却很正常。

由此我推测是cmd不能很好地兼容utf8,而IDLE就可以,甚至在IDLE下运行,连“改变标准输出的默认编码”都不用,因为它默认就是utf8。如果一定要在cmd下运行,那就改一下编码,比如我换成“gb18030”,就能正常显示了:

sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030') #改变标准输出的默认编码】


22.5、补充编码问题【我觉得我已经掉进编码的坑里出不来了……

Python涉及到编码的地方

py源代码的编码

你写源代码时使用的编码是什么,比如中文windows记事本默认的gbk2312的

编辑器使用哪种编码显示源代码的

比如用词本写源代码再用pycharm打开源代码可能就会乱码,因为pycharm默认是用utf-8显示的

运行界面显示文本的编码(重要)

这个编码搞不清楚就问题大啦,就会报各种错误,大家肯定遇到过一个脚本在pycharm下运行正常,但到cmd下运行就出问题的情况吧。

pycharm的运行环境编码为utf-8

cmd的运行环境编码为gbk,

cmd下可以使用chcp命令查看活动页的编码,简体中文系统中显示为936

936 GBK(一般情况下为默认编码)

437 美国英语 

65001 utf-8

当使用print向运行界面打印信息时,是把这个字符串用默认编码转化成对应的的字节给运行界面显示的,如果你给的字符串编码是unicode的那么系统会自动根据环境转成对应的gbk或utf8去显示但是如果你给的是utf-8然后丢给cmd显示cmd默认是界面gbk的编码字符,这个时候print就会报错啦

print(sys.stdout.encoding) ——可以查看环境编码

23、Execute Failed Reason: execute postgresql crash: 错误: 语法错误 在 "','" 或附近的

LINE 1: ...发生一起事故,在一家造纸厂内,4人落入沼气池!'  ','[]','ne...

问题原因:数据库把单引号‘认作特殊字符。所以要先转一下,用两个单引号就好啦

解决办法:df_temp['content'] = df_temp['content'].apply(lambda x:re.compile(r"['’‘]").sub("''", x)) ——神奇的是,只改这个也能解决22的报错!!!神奇!!!

更多编码问题参考:http://outofmemory.cn/code-snippet/1587/python-zhongwen-charaeter-coding-decode-encode-yiji-luanma-resolve-summary


24、TypeError: expected string or bytes-like object

正则参数,不是字符串,改成字符串就行了!

这个错误我是发生在以下代码:

re.findall(pattern, data)

这个时候如何data的数据类型为bytes,时,就会包这个错误,因为它需要的是字符串。

所以我们要在使用re.findall()方法之前,先把data类型转为字符串str类型。方法:

re.findall(pattern,data.decode('utf-8'))   // 我直接简单粗暴 re.findall(pattern, str(data)) 也OK了。。

其中decode和encode方法转换流程:

      decode              encode

bytes ------> str(unicode)------>bytes

25、print 不会立即打出

然而奇怪的是print并不会立即打印,而是在执行完毕整个方法后才输出,冥思苦相半天终于从生锈的脑袋里想起“缓冲区”这个概念,查证资料后得到解决办法,供各位小伙伴参考

使用flush() 方法 

import sys 

print(xxxx) 

sys.stdout.flush()

python 3.x版本可以设定flush参数 

print(xxx,flush=True)

以上

26、locals() 命名后报NameError -- NameError: name 'events_head_ids' is not defined

问题:locals() 赋值和 直接赋值 方式不同 参考网址:https://segmentfault.com/a/1190000012724861


直接赋值


STORE_FAST


locals()


解决方法:用globals()

27、psycopg2.OperationalError: could not receive data from server: Software caused connection abort (0x00002745/10053) —— 这到底是什么错误啊魂淡!!! 一会儿出现一会儿消失, 鬼扯的多进程@

解决办法: 在外面加循环,try..except 十次+

28、多进程处理全局变量的问题 —— 只是知道了问题,但不知道为什么,今天晚一点弄懂记录一下,问郑哥~

原因:多进程没法共享变量,所以全局变量在多进程里起不了作用。虽然在主进程里给全局变量赋了值, 但只要进入子进程,就无法共享全局变量了。所以要共享变量,必须将变量传入子进程的函数。

29、Python多进程有一个巨大的坑!!!就是程序有错不会爆出来,只会跳过执行下一个!!!~~~

30、本地代码运行没问题,但服务器会报错——这个时候多半是Python或所带的包版本不一致,将服务器上包的版本和Windows统一一下就好。

31、TypeError: Object of type 'Timestamp' is not JSON serializable

原因:json没办法序列化timestamp格式

解决办法:df_warning_trace_info['do_time'] = df_warning_trace_info['do_time'].dt.strftime('%Y-%m-%d %H:%M:%S') ——  converting a pandas Series use pd.Series.dt.strftime()

32、用contab命令定时执行Python程序时,程序本身没问题,但定时就是不执行。

如:*/1 * * * * cd /home/liuyusheng/codes_notimer/&&python test.py >> test.log

查看cron日志:【报错】

Aug 29 17:35:01 izwz98pmxwulw602z7dz17z CROND[1251]: (root) CMD (cd /home/liuyusheng/codes_notimer/&&python test.py >> test.log)

Aug 29 17:35:02 izwz98pmxwulw602z7dz17z CROND[1250]: (root) MAIL (mailed 142 bytes of output but got status 0x004b#012) —— 没能成功执行

错误原因:服务器找不到Python的环境变量

解决方法:

1、source /etc/profile && cd /home/liuyusheng/codes_notimer/&&python test.py >> test.log

2、source /root/.bashrc && cd /home/liuyusheng/codes_notimer/&&python test.py >> test.log 【最后用了这个】

之后研究下profile和bashrc的区别,参考:https://www.cnblogs.com/hongzg1982/articles/2101792.html

33、ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()

错误原因:

不能用and,or连接,要用&,|
两边大小于号也不行

正确解法:


34、在不同的工程下打开同一个py,执行结果可能不同。

如果是单文件,没有依赖工程的包,则不会有问题;但如果对工程下的包有依赖,则在哪个工程下打开,就会去那个工程下找对应的包,而不是回py本来的路径下找。

35、Windows 任务计划 

1)Python脚本有依赖包的话也会有上述问题,导致定时执行不成功。

es_utils.py在路径D:\\liuyusheng\\liuyusheng\\codes 下,单个脚本执行计划任务时,应该把这个工程路径添加进去才能找到这个模块。这种路径添加的办法只对本程序执行过程有效,执行完了自动释放,不会添加到环境变量里。

2)使用绝对路径

不然会找不到文件,定时任务执行不成功。

36、工程下:程序所在文件夹 和 程序生成的数据所在的文件夹 最好在同一级,而不是相互包含,否则运行程序有大量代码生成时,会很卡。

37、pycharm导入import 模块有红线的问题:

【其实问题是出在,我在pycharm导入时把codes上一级env_complaints作为整个工程导入,实际上应该只导入codes作为工程就没有这个问题了!!!】

工程层级:

需要引用的py文件放在utils里面

1)

加个点(当前路径)

2)pycharm把工程路径设置一下:

File - Settings

Settings - Console - "Add source roots to PYTHONPATH"

找到工程目录 - codes,右键 - Mark Directory as - Sources Root

问题解决

38、还是import引入问题:

同是utils下的两个py: parameters.py 和 path_manager.py, 不能直接import,因为pycharm每次会从工程根目录下找,所以一定是 from utils import path_manager

parameters.py 调用 path_manager

39、Python里面bool型False的问题:

dataframe里存入False,之后取出导成本地json会无法识别,导致生成失败。但直接在json的dict格式里写入False是可以json化的,原因是dataframe和dict里的False类型不一样:


一个是nump.bool_,一个是bool

40、注意 .py 文件之间引用的全局变量问题!!! —— 引用某个模块(如,base.py)时,其全局变量已经赋值完成。如果在程序运行过程中对其全局变量有改动,则应该在主调度py调用base.py中的某个函数中,对其相应全局变量先赋值。

如:① 引用时即赋值的全局变量:

不会在执行过程中改变

② 调用时才赋值的全局变量:


定义


在调度函数中赋值,执行过程可能改变

41、TypeError: 'cmp' is an invalid keyword argument for this function

原因:Python3 的sort函数不再支持cmp参数导致的错误

解决Python3没有cmp参数的问题

42、字符串.strip(rm)的问题:

这里的rm删除序列是只要边(开头或结尾)上的字符在删除序列内,就删除掉

例如 :

不是只删除指定子串,而是只要开头/结尾的字符在rm子串内,就删除;用split解决

43、dataframe里面的整型是numpy.int型:


要用int(df.loc['aa','c'])转一下


44、OSError: Initializing from file failed

原因:一种是函数参数为路径而非文件名称,另一种是函数参数带有中文。

解决:第一种情况很简单,原因就是没有把文件名称放到路径的后面,把文件名称添加到路径后面就可以了。

第二种情况,即使路径、文件名都完整,还是报错的原因是这个参数中有中文,但是Python3不是已经支持中文了吗?参考了错误原因和pandas的源码,发现调用pandas的read_csv()方法时,默认使用C engine作为parser engine,而当文件名中含有中文的时候,用C engine在部分情况下就会出错。所以在调用read_csv()方法时指定engine为Python就可以解决问题了

解决方法


试验:

1)open

1、encoding要加到open里;2、可保证输出完整表头

2)engine = 'python'

丢失其他列的表头,为什么?

45、处理dataframe总是报赋值的warning:

终于我这强迫症也忍不了了,去研究了.loc赋值和直接赋值的区别。

详细链接:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

一个是线性运算-逐次取出,另一个是一次拿出来。
被warning的根本原因不仅仅是上述的操作时间问题,更重要的是可能引发异常——和内存有关,有缓存被清掉 / 改变原有数据的风险

另一种报这种warning的情况:

deepcopy可以解决


46、爬虫获取页面数据 中文被编码,看不懂

解决:

1)法一

str(string[,encoding])

2)法二:

取回来的原始字符用utf8解码

结果:

中文字符能看到了

47、问题:读取csv文件指定index_col/处理dataframe的过程中, 可能产生原有index独立出来为列,列名为:Unnamed:0,很烦。如下图:

Unnamed

解决方法:很巧妙~~~        df = df.loc[:, ~df.columns.str.contains('^Unnamed')]                    # 取列名不包含Unnamed开头的列

48、问题:写完程序右键发现只有“run Nosetests in XXX.py”,没有“run XXX.py”

可能原因:test是特殊字符,不能用这个词开头来命名函数/类,会让程序自动进入Nosetests的模式

最后的解决:改名字= = ,把test改成check,就好了

49、爬虫取回来的数据是bytes,要转为dict:

eval(str(data_bytes, encoding='utf-8'))

50、问题:IndexError: single positional indexer is out-of-bounds

原因:对空dataframe用了:rows_count = df_weibo_new.iloc[:, 0].size    来取行数,意思是这个用法只在有index/columns的情况下可以用

解决办法:rows_count = df_weibo_new.shape[0]     # 任何dataframe都可以取行数

51、df_weibo_new = df_weibo_new[df_weibo_new["content"].apply(lambda x:re.search(env_r, x)].reset_index(drop=True)

注:env_r = '污染|雾霾'   # 关键词,或关系

这一句报错,原因是如果字符串x没有匹配到env_r,会返回None,而再在外层用df_weibo_new[None]会在索引中找不到None而报错。

解决方法:加个 == True

df_weibo_new = df_weibo_new[df_weibo_new["content"].apply(lambda x:re.search(env_r, x) == True)].reset_index(drop=True)

52、string.format()的问题

sqlstr ="UPDATE %s SET {} WHERE id={};"%PublicPraiseTable.BaseSample

set_cols = [colfor colin df_fenci.columns.tolist()if colnot in ["id", "content"]]# , "fenci_mark"

for index, rowin df_fenci.iterrows():

        set_str =", ".join(["{}='{}'".format(col, row[col])for colin set_cols])

        # 打上fenci_mark

        set_str +=", fenci_mark=1, fenci_update='{}'".format(datetime.now())

        # 这样写有问题,第一次format赋值后,sqlstr就已经是字符串了,下次format不起作用

        # sqlstr = sqlstr.format(set_str, row["id"])

        # print(sqlstr, flush=True)

        public_praise_db_sample_obj.execute_any_sql(sqlstr.format(set_str, row["id"]))    # 应该这样写

53、MemoryError:

file_bytes = f.read()

MemoryError

https://blog.csdn.net/weixin_39750084/article/details/81501395

54、Linux系统,服务器上安装pyfasttext报gcc的错误:command 'gcc' failed with exit status 1

尝试研究:在阿里云服务器、本机的Linux系统下都能成功安装pyfasttext,但在118的服务器上就不行。

用gcc --version查看版本是4.4.7,怀疑是该版本不支持C++11,而pyfasttext明确要求C++11:

pyfasttext要求支持C++11的gcc配置

也尝试过一些网上通用的解决方案,如:https://blog.csdn.net/enweitech/article/details/80728434,均不能解决

通用解决方案-不能解决


锁定问题,是centOS下的gcc版本无法升级至支持C++11的原因

centOS下,gcc最新版为:gcc4.4.7

最终解决办法:http://www.cnblogs.com/highway-9/p/5628852.html

总结:1)查看Linux系统:cat /proc/version

内核系统

2)查看Linux系统版本命令:lsb_release -a

版本命令


55、Linux客户端中文乱码问题:在客户端修改即可!!!

连接右键-【Properties】
【Appearance】-【Character encoding】-【UTF-8】即可

先这么改,不要一早去改内置文件(./etc/.bashrc)!!!

56、plt报错:plt.text(.99, .01, ('vec_col=%s, k=%d, score=%.2f' % ("A", 1, 3.33)),tranform=plt.gca().transAxes,

        size=10, horizontalalignment='right')


raise AttributeError('Unknown property %s' % k)

AttributeError: Unknown property tranform

代码块儿:

去掉红框即正常,但text会显示不全

报错信息:

说没有transform属性,但肯定不是这个问题。。。之后研究一下

57、Windows计划任务程序——查看历史记录总是报错,启动 Windows Event Log 报错4021,解决办法:

找到“C:\Windows\System32\LogFiles\WMI”下的文件夹“RtBackup”,右击——“安全”,你就会看到在“组和用户名”的那个框里可能会没有SYSTEM这个用户,这个时候你点编辑----添加,在方框中键入SYSTEM,再点确定就可以了。同时对于SYSTEM这个用户,你把他的权限中的完全控制给选上,确定退出后,重启一下。

58、Python 读取数据 内存问题:https://blog.csdn.net/youzhouliu/article/details/83745445

59、几个Linux下操作的问题:

1)多版本Python,怎么运行指定版本的Python?

- 改Python指向: ln 目标路径的python /usr/bin/python

如遇file exists的错,先 mv /usr/bin/python /usr/bin/python-old

注:mv命令需要权限

- 直接带路径执行:/opt/anaconda3/bin/python  XXX.py

2)服务器jieba报错:

permissionERROR

是因为jieba加载模型时,需要在指定路径下建立temp文件

解决:sudo  /opt/anaconda3/bin/python  XXX.py

60、数据存储方面:注:csv文件(一张表)最多写1048576行,多的会被截掉!!! —— 错,csv行数无限制,只是用excel/WPS打开只显示1048576行,后实测,用notepad++打开有255百万行。

最多104.8576W行

百万量级文本数据导至本地,最好用.txt,大小只和磁盘内存有关,打开比同量级json快、稳定

CSV作为大量级文本数据存储真是无比难用!!!bug众多!!!对不齐,编码,格式乱掉!!!你妹啊!!!!!!!

用json/txt啊!!!!!!

61、大量级文本样本数据存储:HDF5,lmdb,txt(多分文件),分布式文件系统

62、csv导出乱码问题:逗号导致分隔出错,0开头的字符串被抹去 及解决方法

逗号导致分隔出错,0开头的字符串被抹去

https://blog.csdn.net/conanju_pc/article/details/50535744


63、winscp 主机通信连接断掉——也有可能是内存占满,连不上,掉线

也有可能是内存占满,连不上,掉线

64、服务器上路径配置问题,如果code和引用的包不在统一层级,且报错说找不到包的话,需要把工程路径加到sys.path里面:

import os

PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +"/"

print(PROJECT_DIR)

import sys

sys.path.append(PROJECT_DIR)

65、Python dir() 函数

 Python 内置函数

描述

dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。

66、Linux(centOS 7.6系统)下升级svn(从1.6到1.11)

报错:

--> 正在处理依赖关系 libsasl2.so.2()(64bit),它被软件包 subversion-1.11.0-1.x86_64 需要

--> 解决依赖关系完成

错误:软件包:subversion-1.11.0-1.x86_64 (WandiscoSVN)

          需要:libsasl2.so.2()(64bit)

您可以尝试添加 --skip-broken 选项来解决该问题

您可以尝试执行:rpm -Va --nofiles --nodigest


libsasl2.so.2()(64bit)  对应的是centOS 6的某软件包,在centOS 7下找不到

智障啊真是!!!!新版本路径配错!!!本机是centOS 7.6,配的升级路径是:baseurl=http://opensource.wandisco.com/centos/6/svn-1.11/RPMS/$basearch/

然后一直报依赖包错误啊!!!还去yum update了所有包啊!!!!

你妹!!!缺的是centOS 6.0下的包,怎么可能在centOS 7.6环境下装的上啊!!!

照搬网上答案真的会把自己坑死!!!

最后解决:

baseurl=http://opensource.wandisco.com/centos/7/svn-1.11/RPMS/$basearch/

或者(估计也有效):

baseurl=http://opensource.wandisco.com/centos/$releasever/svn-1.8/RPMS/$basearch/

配置文件:

配置文件

升级结果:

升级到1.11成功


意外收获:

Linux下缺的依赖包下载地址:

https://pkgs.org/download/libsasl2.so.2()(64bit)

安装.so依赖包,如libsasl2.so.2()(64bit) —— 对应上述网址中下载的包名:cyrus-sasl-lib-2.1.23-15.el6_6.2.x86_64.rpm

rpm -ivh cyrus-sasl-lib-2.1.23-15.el6_6.2.x86_64.rpm  / yum install ...

Linux从HTML下载包:

wget +url

Linux下查看系统版本:

lsb_release -a

升级初衷:

也是报错……

报svn subversion版本和客户端对不上的错,原因大概是我在windows下用了tortoriseSVN 是 1.11版本的,而Linux下的svn是1.6版本的,需要升级。

######

妈的!搞半天!原来247(产品正式服务器)本来就没有升级svn,因为:

一是外网服务器(云服务器)访问不了内网网址(svn代码管理服务器)!!!

二是同步到对外发布(正式产品)服务器上的代码,必须手动确认,不能本地svn更新就直接拖!!!危险!!!影响产品!!!

都是坑,西湖的水,我的泪~~~~

67、服务器内外网

让我们念三遍:

外网(云服务器)是找不到内网(如内网管理svn的服务器)的机器的

外网(云服务器)是找不到内网(如内网管理svn的服务器)的机器的

外网(云服务器)是找不到内网(如内网管理svn的服务器)的机器的

内网IP一般为:

10.X.X.X、

172.16.X.X-172.31.X.X、192.168.X.X等

外网IP一般为:其他,如120.78.……

68、环境变量问题:Python不是内部或外部命令

1)右键Python 查看安装路径

2)计算机-属性-高级系统设置-环境变量-path-加上:

C:\python27;C:\python27\Scripts

注意:不能省掉后一个!!!

69、elasticsearch readtime out

加大timeout参数,增加客户端health设置

用scroll_id翻页时,遇到read timeout 可能会取不全(某几页就取不到),但如果不用翻页,要么程序轮询完节点,都timeout 于是报错退出,要么就能取全。

70、ImportError: libcublas.so.10.0: cannot open shared object file: No such file or directory

原因:TensorFlow的版本和cuda版本不一致,需要cuda-10.0的版本

解决:

1)在linux系统普通用户目录(cd /home/xxx)下的.bashrc文件中,加上cuda-10.0的路径:

export LD_LIBRARY_PATH = $ LD_LIBRARY_PATH:/usr/local/cuda-10.0/lib64/

2)执行source ~.bashrc激活配置

3)再次执行程序,问题得到解决~

附注:

1)TensorFlow和cuda版本对应:https://tensorflow.google.cn/install/source

TensorFlow VS cudnn CUDA

2)查看cuda和cudnn版本:https://blog.csdn.net/Teeyohuang/article/details/79082003

cuda一般安装在 /usr/local/cuda/ 或 /usr/local/cuda-10.0/  路径下,该路径下有一个version.txt文档,里面记录了cuda的版本信息

cat  /usr/local/cuda/version.txt 即可查询

同理,cudnn的信息在其头文件里

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2  即可查询

3)修改.bashrc文件:https://blog.csdn.net/eleanoryss/article/details/70207767

查看.bashrc文件

71、Beyond Compare 4 提示错误“授权密钥已被吊销”的解决办法

错误提示:

授权密钥已被吊销。

解决方法:

删除以下目录中的所有文件即可。

C:\Users\Administrator\AppData\Roaming\Scooter Software\BeyondCompare4

72、pip装包/升级太慢 - 换国内的源

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn +包名

73、git拉取gitlab工程报错:

拉取项目显示错误信息

remote: Repository not found.

fatal: repository 'http://192.168.1.13/xxx/xxx.git' not found

原因:因为以前使用过其他帐号配置信息都保存了,然后帐号密码默认用以前的导致拉取没有权限

解决方法:

执行cmd命令

    git clone http://username:password@192.168.1.13/xxx/xxx.git

74、elasticsearch写入速度(针对es.bulk操作超时报错的情况)优化:https://blog.csdn.net/jiao_fuyou/article/details/78518209

具体报错:

具体优化操作:

① 关掉索引副本:

你的index/_settings PUT

{

    "number_of_replicas": 0

}

写完后,再把number_of_replicas置为>0的某个数即可

② 更改一些配置:

主要是优化提交和更新数据的周期和大小,注意:需要关闭索引后执行,执行结束后再打开!

总结:put和get操作(原理)知识匮乏,导致之前看人家说可以怎么怎么优化,却不知道具体操作方法。。。现在依然一知半解,需要回去恶补下

75、test(**kwargs)** 的作用则是把字典 kwargs 变成关键字参数传递。比如上面这个代码,如果 kwargs 等于 {'a':1,'b':2,'c':3} ,那这个代码就等价于 test(a=1,b=2,c=3) 。

76、报错:通常每个套接字地址(协议/网络地址/端口)只允许使用一次。

原因:同一个端口的进程没有kill掉

解决:① 打开cmd

          ② netstat -aon|findstr +端口号 查找pid

          ③ tasklist /fi “pid eq 276”,276是你在①中查到的pid号

          ④ taskkill /pid 276 /f,杀掉276的进程 // 或者打开任务管理器,杀死进程号=276的进程

具体图文参见:[https://blog.csdn.net/sinat_19917631/article/details/70228718](https://blog.csdn.net/sinat_19917631/article/details/70228718)

77、写函数时,参数(入参和返回)标清类型和要求:

def judge_idx_type_with_keywords_n_cates(data_dict:dict, idx_type:str)->bool

可用:函数名.__annotations__查看参数属性

78、progresql 备份数据库遇到的坑relation “XXX_id_seq” does not exist

从mysql 数据库转用psotgresql ,练手的时候打算备份数据库,转存sql脚本

运行sql脚本的时候数据和结构都刷不过来,于是检查sql脚本和报错,一直报relation "performance_id_seq" does not exist ,查阅文档得知:

在postgresql表中建立了自增字段,id定义为Serial 类型,当执行完成建表语句后,其字段便成:

"id" int4 NOT NULL DEFAULT nextval('performance_id_seq'::regclass)

这种形式

但是导出sql脚本时候直接定义成这种形式,postgresql不能识别,想必是postgresql的一个小bug吧,因此自增的id,在建表的时候应该定义为:

“id”  serial

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容

  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,688评论 0 10
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,422评论 0 13
  • 个人笔记,方便自己查阅使用 Py.LangSpec.Contents Refs Built-in Closure ...
    freenik阅读 67,666评论 0 5
  • 字符集和编码简介 在编程中常常可以见到各种字符集和编码,包括ASCII,MBCS,Unicode等字符集。确切的说...
    兰山小亭阅读 8,416评论 0 13
  • 这个城市风很大,孤独的人总是晚回家。 像一颗向日葵,在黑夜里默默的坚持。 16岁入社会,今年21 这个月2号在一个...
    沉吟大叔阅读 479评论 0 2