前言

记录一些遇到的问题

01. Python 中文乱码 (Git Bash)

win终端正常运行但是在git bash 终端运行py文件中文乱码
在python命令前加 winpty 之后则可以正常显示中文

winpty:一个 Windows 软件包,提供类似于 Unix pty-master 的接口,用于与 Windows 控制台程序通信。

image-20230331001601640

参考文章:

  1. 【python中文乱码】git bash终端运行python文件中文乱码的问题

  2. https://github.com/rprichard/winpty

02. .gitignore 测试规则

.gitignore 配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
*.a             表示忽略所有 .a 结尾的文件
!lib.a 表示但lib.a除外
doc/*.txt 表示会忽略doc/notes.txt但不包括 doc/server/arch.txt
/TODO 表示仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
bin/ 表示忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件
**/foo: 表示忽略/foo,a/foo,a/b/foo等
a/**/b: 表示忽略a/b, a/x/b,a/x/y/b等
*.log: 表示忽略所有 .log 文件
/mtk/ 表示过滤整个文件夹
*.zip 表示过滤所有.zip文件
--- 需要注意的是,gitignore还可以指定要将哪些文件添加到版本管理中,如下: ---
!*.zip
!/mtk/one.txt
唯一的区别就是规则开头多了一个感叹号,Git会将满足这类规则的文件添加到版本管理中。为什么要有两种规则呢?
想象一个场景:假如我们只需要管理/mtk/目录中的one.txt文件,
这个目录中的其他文件都不需要管理,那么.gitignore规则应写为:
/mtk/*
!/mtk/one.txt
假设我们只有过滤规则,而没有添加规则,
那么我们就需要把/mtk/目录下除了one.txt以外的所有文件都写出来!
注意上面的/mtk/*不能写为/mtk/,否则父目录被前面的规则排除掉了,
one.txt文件虽然加了!过滤规则,也不会生效!
--- 还有一些规则如下: ---
fd1/*
说明:忽略目录 fd1 下的全部内容;
注意,不管是根目录下的 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略;
/fd1/*
说明:忽略根目录下的 /fd1/ 目录的全部内容;
------
/*
!.gitignore
!/fw/
/fw/*
!/fw/bin/
!/fw/sf/
说明:忽略全部内容,但是不忽略 .gitignore 文件、根目录下的 /fw/bin/ 和 /fw/sf/ 目录;
注意要先对bin/的父目录使用!规则,使其不被排除。

* .gitignor 忽略规则查看

有时候,确定为什么要忽略特定文件可能会很困难,尤其是当你使用多个.gitignore文件或复杂格式时。这是git check-ignore命令的用处,告诉git显示匹配模式的详细信息。

例如,要检查为什么忽略www/yarn.lock文件,可以运行:

git check-ignore -v www/yarn.lock

image-20230404144757129

显示所有被忽略的文件

带有–ignored选项的git status命令显示所有被忽略文件的列表:

git status --ignored

参考文章:

  1. Git忽略提交规则 - .gitignore配置【学习】

  2. 如何使用.gitignore忽略Git中的文件和目录

03. Windows 显示"无Internet"

情况:网络显示 “无Internet”,但是可以上网。以下措施没根本解决,最终用微软诊断工具,重置了 以太网 网络(万能的重装大法)…

  1. dns.msftncsi.com 发送 DNS 查找请求,DNS 解析为 131.107.255.255

  2. 请求 http://www.msftconnecttest.com/connecttest.txt,如果网络正常,则此文件是纯文本文件,仅包含文本 Microsoft Connect Test

如果过程1不正常,则提示“无法访问Internet”,如果1正常2不正常,则提示需要进行身份验证

以下措施没解决问题

估计 DHCP 分配的 DNS 服务器(指向网关)有问题,SwitchHosts 追加本地记录

1
2
# Microsoft
dns.msftncsi.com 131.107.255.255

开机自启 SwitchHosts(Win):

  • 快捷方式 复制到 => C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\

  • 设置 => 选项 => 启动时隐藏 √

参考文章:

  1. 解决Windows有网络连接但是显示“无Internet”的问题

  2. SwitchHosts/issues/646

04. Replit Repl ERR_SSL_PROTOCOL_ERROR

未解决,绑自定义域名后,未分配 SSL 证书

Replit 官方论坛:

  1. https://ask.replit.com/t/err-ssl-protocol-error-for-all-sites/27775

  2. 问题搜索:https://ask.replit.com/search?q=ERR_SSL_PROTOCOL_ERROR

Replit 官方服务状态:

  1. SSL 证书问题

  2. 部署的新自定义域遇到 SSL 错误

临时方案:

  1. https://ask.replit.com/t/err-ssl-protocol-error-for-all-sites/27775/4

    现在,更改“。” 在 url 中的 repl 名称和用户名之间添加到“–”就可以了。

    例如,https://score-analyzer–enderparakeet.repl.co/ 3个作品。

教程:

  1. Replit 绑自定义域名(官方)

05. Terminal 报错: 4294967295

wsl2 报错: [已退出进程,代码为 4294967295 (0xffffffff)],终端无法打开

1
2
3
4
# 管理员身份 PowerShell
netsh winsock reset

# 重新打开 terminal,无效则尝试重启后再打开

参考:打开wsl,显示 [已退出进程,代码为 4294967295] 的解决方案

后记:未根本解决,根本错误 wsl Error: 0x80040326,如下

06. wsl2 Error: 0x80040326

无法打开终端,报错:

Error: 0x80040326 Error code: Wsl/Service/0x80040326

解决方法:powershell 管理员模式:wsl --update

参考:

  1. https://blog.csdn.net/minibirder/article/details/129863725

  2. https://blog.csdn.net/qq_37932051/article/details/129873314

07. crond 致 sendmail 大量进程

阿里云服务器监控显示 CPU 长期高负载,原因:定时任务 crond 引发大量 sendmail 进程

参考:

  1. https://blog.csdn.net/LQzhang_11/article/details/114323700

  2. https://blog.51cto.com/ning235/2661806

处理方法:

  1. cron 后面添加 &> /dev/null> /dev/null 2>&1

  2. 禁止 cron 发用户邮件(未操作)

08. Netlify 自动转换小写 URI

现象:原 URI /tags/Error/ 转为 /tags/error/

解决:配置中取消 Pretty URLs 美化 URL 的功能

  • Site configurationPost processingPretty URLs → □ Enable Pretty URLs

示例:https://app.netlify.com/sites/mycpen-blog/configuration/deploys#pretty-urls

image-20231004203836279

09. pip: command not found

前言:电脑上已装 Python,且在 PATH 内,无法找到 pip 命令

报错:pip: command not foundNo module named pip

升级 pip:python -m pip install --upgrade pip

办法:执行 python -m ensurepip

来自 chatgpt

在 Windows 系统上,如果您在运行 python.exe 时遇到 No module named pip 错误,这通常表示在您的 Python 安装中缺少了 pip 模块。pip 是 Python 的包管理工具,通常会随 Python 一起安装。

您可以按照以下步骤来解决这个问题:

  1. 检查 Python 安装:

首先,请确保您已经正确安装 Python。您可以在命令提示符下运行以下命令来检查 Python 的版本:

1
python --version
  1. 检查 pip 是否安装:

在较新版本的 Python 中,pip 已经随 Python 一起安装。您可以尝试运行以下命令来安装 Python 包:

1
python -m ensurepip

这将安装 pip 模块。如果 pip 已经安装,您可能会看到一条消息指示 Requirement already satisfied.

  1. 添加 pip 到系统环境变量:

如果 pip 已正确安装,但仍然无法正常使用,可能是因为 pip 不在系统的环境变量中。您可以手动将 pip 所在的路径添加到系统的 PATH 环境变量中。

默认情况下,在 Windows 系统上,pip 通常安装在 Scripts 文件夹中。您可以找到该文件夹的路径,然后将其添加到系统的 PATH 环境变量中。

  1. 验证 pip 安装:

最后,您可以在命令提示符下运行以下命令来验证 pip 是否安装成功:

1
pip --version

如果 pip 安装成功,您应该看到 pip 的版本信息,而不再出现 No module named pip 错误。

通过按照上述步骤操作,您应该能够解决 No module named pip 错误,并成功使用 pip 来管理 Python 包。

10. git fetch --unshallow

github action 报错 ! [remote rejected] main -> main (shallow update not allowed)

1
2
3
4
5
remote: Powered by GITEE.COM [GNK-6.4]        
To https://gitee.com/mycpen/image_bed.git
! [remote rejected] main -> main (shallow update not allowed)
error: failed to push some refs to 'https://gitee.com/mycpen/image_bed.git'
Error: Process completed with exit code 1.
image-20240510234628717

解决:git fetch --unshallow,详见 link

来自 chatgpt

这个错误是因为在尝试将代码推送到 Gitee 仓库时,Gitee 不允许进行浅层更新(shallow update)。浅层更新是指仓库中只包含部分历史记录,而不是完整的历史记录。为了解决这个问题,你可以尝试以下方法:

  1. 完整克隆:首先,你可以通过完整克隆仓库的方式来获取完整的历史记录,然后再进行推送。在克隆仓库时,不要使用 --depth 参数,这样可以确保克隆完整的历史记录。

    1
    git clone https://gitee.com/mycpen/CDN.git
  2. 移除浅层设置后重新克隆:如果你之前使用了浅层克隆,可以尝试移除浅层设置,然后重新克隆仓库。

    1
    2
    git fetch --unshallow
    git clone https://gitee.com/mycpen/CDN.git
  3. 强制推送:如果你已经有本地完整的历史记录,可以尝试使用强制推送来覆盖远程仓库的内容。

    1
    git push -f origin main

通过以上方法,你应该能够解决 Gitee 仓库不允许浅层更新的问题,并成功将代码推送到 Gitee 仓库中。如果你有任何其他问题或需要进一步帮助,请随时告诉我。