继承与声明

1
2
3
class A
super(B)
TypeError: super(type, obj): obj must be an instance or subtype of type

注意copy新建类的时候要把super实例化的地方也改掉。

深入剖析:super()的作用是调用父类(超类)的一个方法。mmEMA2类继承自nn.Module类。super(mmEMA2, self).init()这一行代码的作用是调用父类nn.Module的__init__方法来初始化mmEMA2类。在子类中可以重用父类的代码,避免重复代码的编写。并且当父类改变时,子类代码不需要修改,只需要通过super()来调用最新版本的父类方法。

服务器换地址时,再打开pycharm会自动关闭,这是因为此时的pycharm还在不断尝试连接而没有

目前解决方案:断网,把要换的项目的解释器换成本地的,删除mapping。(防止同步)联网(连接)连接新服务器配置环境和映射(配置同步)

刚刚在想能不能提前设置,应该不行,因为进去就卡死,杀死也不行

杀死各种奇奇怪怪的进程

在运行程序的时候总是有很多程序卡着也关不掉,所以就有了这个part

  • Pycharm

    1
    ps -ef | grep pycharm | grep -v grep | awk '{print $2}' | xargs kill
  • 释放显卡

1
fuser -v /dev/nvidia1 | awk '{print $0}' | xargs kill -9
  • 杀死final shell

    1
    2
    top
    kill

python 字典更新 NoneType

dict.update(query_time) 这个是一个在原先代码上进行操作的命令。之后的代码要注意是在原变量空间做原地操作还是新创建一个变量。

机器学习库缺少

  • 使用pip安装
1
pip install -U scikit-learn==0.22.1
  • 使用conda安装
1
conda install scikit-learn    #安装sklearn

读入的编码格式显示不正确

在首行添加

1
# -*- coding: UTF-8 -*-

plt Chinese

报错信息:文本显示不正确,通过网络上常用的方法之后也无法得到解决,其中原因为网络上常用的方法为windows,与mac系统不相同

加入以下两行代码,若没有字体,要新下载字体,建议从github上下载,互联网上垃圾文件太多。

matplotlib.matplotlib_fname():通过这个命令打印字体库的位置。

1
2
plt.rcParams['font.sans-serif']=['Songti SC'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 #有中文出现的情况,需要u'内容'

Jupyter问题

在jupyter中打印csv的代码

1
from IPython.display import display

plt绘图,在jupyter中保存透明状态

1
2
3
plt.style.use('seaborn-darkgrid') # 设置画图的风格
rotation='vertical'
# hist、bar都需要传入x进行打标记,等于其实是把数据和刻度以及标签和刻度进行关联

Numpy 打印浮点数的问题

1
set_printoptions(precision=None, threshold=None, edgeitems=None, linewidth=None,suppress=None, nanstr=None,  infstr=None, formatter=None, sign=None,floatmode=None, **kwarg)

npm 安装依赖包太大了(花费50)

错误1:

1
npm ERR! fatal: unable to connect to github.com

解决方案:

将ssh访问切换为https访问,执行以下命令:

1
git config --global url."https://".insteadOf git://

错误2:

1
fatal: unable to access 'https://github.com/nhn/raphael.git/': OpenSSL SSL_read: Connection was reset, errno 10054

原因:下载安装的依赖包太大,导致git请求超时了,可以通过修改git http.postBuffer的大小来解决此问题。

解决方案:

  1. 修改postBuffer值为500MB,执行以下命令:
1
git config --global https.postBuffer 524288000
  1. 若想要更直观的修改配置,可以直接打开配置文件进行修改:

打开并编辑git配置文件:

1
git config --edit --global

将如下内容添加至配置文件:

1
2
3
4
[http]
postBuffer = 524288000
[url "https://"]
insteadOf = git://

特别注意:
由于Github位于外网,故改动后仍会因为网络原因造成install失败的几率,可以多尝试npm install几次。
其他相关问题大概率切换npm源能解决问题:

1
npm config set registry https://registry.npm.taobao.org

检测是否切换到了淘宝源:

1
npm info underscore

java String 这个可以单独写一个包括js java python 即编程语言中的None和空值是不是一样的

  • 为null和不为null,比如说定义了,或者前面有传参数传过来,那就不是null了,是不是null用==判断
  • 为“”,这个首先是确定了类,然后在确定了类之后再判断String的值是不是相等,这个用equals

vue Eslint问题

语法强约束,直接关闭

这个bug改了半天,因为全爆红在IDE中也不能运行,最后直接暴力解诀,能用至上,限制可以慢慢改,慢慢优化。

java运行python问题

空格问题

  • 环境问题,空格转String数组
  • 命令行参数后面不能是空格,所以判断为“”之后就把没有赋值的参数remove掉

args的parse问题

这个bug发生在换电脑的时候,从win10换到了win11,从原来的python普通环境换到了anaconda管理,目前确定的是anaconda并没有影响程序的运行。argsparser可以创建也可以add但是在parse的时候会爆出错误。

  • Parse_args()

parse_args()函数返回的是一个命名空间(NameSpace),这个NameSpace中有一些变量,就是我们add_argument()的那些参数。

1
2
3
4
5
6
7
8
9
10
11
12
13
import argparse
parse = argparse.ArgumentParser()
parse.add_argument('--flag_int', type=int, default=2, help='flag_int')
opt1 = parse.parse_args()
print(opt1)

# opt2 = parse.parse_known_args()
# print(opt2)
# print(opt2[0])
# print(opt2[1])
python test.py --flag_int 3
Namespace(flag_int=3)

  • parse_known_args(),可以处理命令行给定参数多的问题
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import argparse
parse = argparse.ArgumentParser()
parse.add_argument('--flag_int', type=int, default=2, help='flag_int')
# opt1 = parse.parse_args()
# print(opt1)

opt2 = parse.parse_known_args()
print(opt2)
print(opt2[0])
print(opt2[1])

python test.py --flag_int 3
(Namespace(flag_int=3), [])
Namespace(flag_int=3)
[]

python test.py --flag_int 3 --flag_float 0.3
(Namespace(flag_int=3), ['--flag_float', '0.3'])
Namespace(flag_int=3)
['--flag_float', '0.3']

“TypeError: Cannot read property ‘init‘ of undefined“

  • 具体表现:数据大屏显示不出来,表现为有元素且元素不显示,且前端的代码部分不报错
  • https://blog.csdn.net/li2635996169/article/details/117337159
  • import echarts from 'echarts'
    改为import * as echarts from 'echarts'
  • import echarts from 'echarts'import * as echarts from 'echarts' 这两个语句的主要区别在于导入的方式不同。
    import echarts from 'echarts' 是将echarts作为默认导出导入的方式。这意味着你只能使用echarts这个变量名来引用导入的模块,而不能使用其他的变量名。例如,如果你使用以下语句导入echarts
    javascript
    Copy
1
import echarts from 'echarts';

那么你只能使用echarts这个变量名来调用echarts模块中的函数和属性。例如:
javascript
Copy
import * as echarts from 'echarts' 则是将echarts作为命名导出导入的方式。这意味着你可以使用任何你想要的变量名来引用导入的模块。使用*通配符将所有命名导出的函数和属性都导入到一个对象中,这个对象的名称由你指定。例如,如果你使用以下语句导入echarts
那么你可以使用任何变量名来调用echarts模块中的函数和属性。例如:
以上语句与之前使用默认导出的方式是等效的。
总的来说,如果你只需要导入一个模块,并且只想使用默认导出的方式来引用它,那么使用import echarts from 'echarts'是更加简洁和直观的。但如果你需要导入多个模块,或者想使用自己喜欢的变量名来引用导入的模块,那么使用import * as echarts from 'echarts'则更加灵活和方便。