Python Bug集锦
继承与声明
1 | class A |
注意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
2top
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 | plt.rcParams['font.sans-serif']=['Songti SC'] #用来正常显示中文标签 |
Jupyter问题
在jupyter中打印csv的代码
1 | from IPython.display import display |
plt绘图,在jupyter中保存透明状态
1 | plt.style.use('seaborn-darkgrid') # 设置画图的风格 |
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的大小来解决此问题。
解决方案:
- 修改postBuffer值为500MB,执行以下命令:
1 | git config --global https.postBuffer 524288000 |
- 若想要更直观的修改配置,可以直接打开配置文件进行修改:
打开并编辑git配置文件:
1 | git config --edit --global |
将如下内容添加至配置文件:
1 | [http] |
特别注意:
由于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 | import argparse |
- parse_known_args(),可以处理命令行给定参数多的问题
1 | import argparse |
“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
Copyimport * as echarts from 'echarts'
则是将echarts
作为命名导出导入的方式。这意味着你可以使用任何你想要的变量名来引用导入的模块。使用*
通配符将所有命名导出的函数和属性都导入到一个对象中,这个对象的名称由你指定。例如,如果你使用以下语句导入echarts
:
那么你可以使用任何变量名来调用echarts
模块中的函数和属性。例如:
以上语句与之前使用默认导出的方式是等效的。
总的来说,如果你只需要导入一个模块,并且只想使用默认导出的方式来引用它,那么使用import echarts from 'echarts'
是更加简洁和直观的。但如果你需要导入多个模块,或者想使用自己喜欢的变量名来引用导入的模块,那么使用import * as echarts from 'echarts'
则更加灵活和方便。