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重要!!!
错误一:
错误二:
正确解法一:
正确解法二(更方便):
注意: int, float, bool,(string)几个类型是值变量型(因此在循环中只生成临时对象,不改变原对象的值);而字典、数组等结构变量名即是指针。ps:用id(i)查看变量地址可辅助理解。eg:
16、史上最崩溃的一次装包!!!——pyfasttext
需要先装cysignals,然而一直报错,找不到指定文件!!!:::
折腾了一两个小时吧。最后看到virtualenv突然灵光一闪。。。尼玛fasttext是在虚拟环境跑的啊!@@我在Windows下装个毛啊啊啊啊啊啊!!!!!
最后在Ubuntu下,加了sudo,成功装了cysignals,和pyfasttext,泪目,不想说话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
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()
错误原因:
正确解法:
34、在不同的工程下打开同一个py,执行结果可能不同。
如果是单文件,没有依赖工程的包,则不会有问题;但如果对工程下的包有依赖,则在哪个工程下打开,就会去那个工程下找对应的包,而不是回py本来的路径下找。
35、Windows 任务计划
1)Python脚本有依赖包的话也会有上述问题,导致定时执行不成功。
2)使用绝对路径
36、工程下:程序所在文件夹 和 程序生成的数据所在的文件夹 最好在同一级,而不是相互包含,否则运行程序有大量代码生成时,会很卡。
37、pycharm导入import 模块有红线的问题:
【其实问题是出在,我在pycharm导入时把codes上一级env_complaints作为整个工程导入,实际上应该只导入codes作为工程就没有这个问题了!!!】
工程层级:
1)
2)pycharm把工程路径设置一下:
①
②
③
④
38、还是import引入问题:
同是utils下的两个py: parameters.py 和 path_manager.py, 不能直接import,因为pycharm每次会从工程根目录下找,所以一定是 from utils import path_manager
39、Python里面bool型False的问题:
dataframe里存入False,之后取出导成本地json会无法识别,导致生成失败。但直接在json的dict格式里写入False是可以json化的,原因是dataframe和dict里的False类型不一样:
40、注意 .py 文件之间引用的全局变量问题!!! —— 引用某个模块(如,base.py)时,其全局变量已经赋值完成。如果在程序运行过程中对其全局变量有改动,则应该在主调度py调用base.py中的某个函数中,对其相应全局变量先赋值。
如:① 引用时即赋值的全局变量:
② 调用时才赋值的全局变量:
41、TypeError: 'cmp' is an invalid keyword argument for this function
原因:Python3 的sort函数不再支持cmp参数导致的错误
42、字符串.strip(rm)的问题:
这里的rm删除序列是只要边(开头或结尾)上的字符在删除序列内,就删除掉。
例如 :
43、dataframe里面的整型是numpy.int型:
44、OSError: Initializing from file failed
原因:一种是函数参数为路径而非文件名称,另一种是函数参数带有中文。
解决:第一种情况很简单,原因就是没有把文件名称放到路径的后面,把文件名称添加到路径后面就可以了。
第二种情况,即使路径、文件名都完整,还是报错的原因是这个参数中有中文,但是Python3不是已经支持中文了吗?参考了错误原因和pandas的源码,发现调用pandas的read_csv()方法时,默认使用C engine作为parser engine,而当文件名中含有中文的时候,用C engine在部分情况下就会出错。所以在调用read_csv()方法时指定engine为Python就可以解决问题了。
试验:
1)open
2)engine = 'python'
45、处理dataframe总是报赋值的warning:
详细链接:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
另一种报这种warning的情况:
46、爬虫获取页面数据 中文被编码,看不懂
解决:
1)法一
2)法二:
结果:
47、问题:读取csv文件指定index_col/处理dataframe的过程中, 可能产生原有index独立出来为列,列名为:Unnamed:0,很烦。如下图:
解决方法:很巧妙~~~ 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:
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:
也尝试过一些网上通用的解决方案,如:https://blog.csdn.net/enweitech/article/details/80728434,均不能解决
锁定问题,是centOS下的gcc版本无法升级至支持C++11的原因:
最终解决办法:http://www.cnblogs.com/highway-9/p/5628852.html
总结:1)查看Linux系统:cat /proc/version
2)查看Linux系统版本命令:lsb_release -a
55、Linux客户端中文乱码问题:在客户端修改即可!!!
先这么改,不要一早去改内置文件(./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
代码块儿:
报错信息:
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报错:
是因为jieba加载模型时,需要在指定路径下建立temp文件
解决:sudo /opt/anaconda3/bin/python XXX.py
60、数据存储方面:注:csv文件(一张表)最多写1048576行,多的会被截掉!!! —— 错,csv行数无限制,只是用excel/WPS打开只显示1048576行,后实测,用notepad++打开有255百万行。
百万量级文本数据导至本地,最好用.txt,大小只和磁盘内存有关,打开比同量级json快、稳定
CSV作为大量级文本数据存储真是无比难用!!!bug众多!!!对不齐,编码,格式乱掉!!!你妹啊!!!!!!!
用json/txt啊!!!!!!
61、大量级文本样本数据存储:HDF5,lmdb,txt(多分文件),分布式文件系统
62、csv导出乱码问题:逗号导致分隔出错,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() 函数
描述
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
智障啊真是!!!!新版本路径配错!!!本机是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/
配置文件:
升级结果:
意外收获:
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
用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
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
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
}
② 更改一些配置:
总结: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
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