menu Chancel's Blog
rss_feed lightbulb_outline

我的笔记

Python - No module name 'Crypto'

在Windows上使用pip安装 crypto

pip3 install crypto

尝试导入crypto的对象时候出现错误

>>> from Crypto.Cipher import AES
Traceback (most recent call last):
    File "<stdin>" , line 1, in <module>
NoduleNotFoundError: No module name 'Crypto'

原因:crypto在python上面的名字是pycrypto,它是一个第三方库,但是已经停止更新三年了

分2步解决这个问题

  1. 卸载crypto然后安装pycryptodome Shell pip3 uninstall crypto pip3 install pycryptodome
  2. 定位到Python的安装目录,找到Libsite-packages,将crypto文件夹的首字母改成大写就可以了,crypto->Crypto

Linux只需要第一步

Develop Technology Python 2020-11-14 03:46:06

Git - 快速使用Git标签标记发布版本

像其他版本控制系统(VCS)一样,Git 可以给仓库历史中的某一个提交打上标签,以示重要。

Git支持两种标签 轻量标签与附注标签(lightweight/annotated),版本标签推荐使用 附注标签

给特定Commit打标签的Git语法如下

# 附注标签
git tag -a [version] -m [comment] [commitID]
# 轻量标签
git tag [version] -m [comment] [commitID]

以实际例子来看看,首先假设当前要提交的版本号为V2.0.0,当前的提交CommitID为06551e1fac

给06551e1fac打上标签

# 附注标签例子
git tag -a v2.0.0 -m "V2.0.0 Version" 06551e1fac
# 轻量标签例子
git tag v2.0.0 -m "V2.0.0 Version" 06551e1fac

标签创建后只存在于本地,如果需要推送到远程仓库,那么需要显式推送

# 单次推送2.0.0标签
git push origin v2.0.0
# 推送所有的标签
git push origin --tags

其他常见操作如下

签出标签(PS:常见于修复旧版本的问题,但请注意签出后本地仓库状态处于 detached 状态,所以要修复旧版本中的错误,建议签出并新建为分支)

# 签出2.0.0版本并创建为v2.0version分支
git checkout -b v2.0version v2.0

删除标签

# 删除本地标签
git tag -d v2.0.0
# 删除远程仓库标签
git push origin --delete v2.0.0

查看标签

# 列出标签列表
git tag
# 查看与2.0版本相关的标签
git tag -l v2.0.0
# 查看标签的详细内容
git show v2.0.0

Develop Base Git 2020-11-04 08:01:40

Openwrt - 旁路由DHCP服务下实现外网的端口映射

局域网内,如果网络模型为旁路由做DHCP服务,那么主路由添加端口映射后,外网请求内网端口映射的机器,会发现请求是成功的,但没有返回

原因是内网的设备网关地址并不是主路由而是旁路由,解决方案有很多,这里提供一个较为简便的方案(PS:不考虑网络性能损耗),直接使用旁路由转发

将主路由的端口映射到旁路由,举例

  • 主路由IP:10.0.0.1
  • 旁路由IP:10.0.0.2
  • 设备A的IP:10.0.0.78
  • 等待转发的转口:10.0.0.1:8008->10.0.0.78:8008

首先在主路由添加端口映射,将8008映射到旁路由的8008,然后在旁路由中添加一条流量转发规则即可

iptables -t nat -A PREROUTING -p tcp --dport 8009 -j DNAT --to-destination 10.0.0.78

Network 2020-10-29 10:03:11

Visual Studio Code - Python代码Yapf自动格式化(换行设置)

首先需要安装Yapf,如果是远程开发,则需要在远程的机器上安装

pip3 install yapf

接着在VS Code菜单栏按顺序选择 File->Preferences->Settings,然后搜索 Python Formatting Provider,选择Yapf

接着在第二行Yapf添加两个参数,如图所示,分别是

--style

{column_limit:200}

即换行间隔字符为200

Software Tools IDE 2020-10-16 06:14:03

Hyper-v 导入硬盘文件到指定的虚拟机

在宿主机上使用如下指令,format的格式自选

qm importdisk [你的虚拟机ID(例如100)] [你的硬盘文件] local-Thin --format=qcow2

Virtualization Technology 2020-08-10 13:12:34

Hyper-v 虚拟机迁移至 Proxmox

  1. 在Hyper-v选出导出你的虚拟机快照(或虚拟机本身或直接拿磁盘文件都可以),这里假设我有一个Windows7虚拟机要转移到Proxmox上,则导出Windows7虚拟机到D盘根目录下

  2. 导出后找到磁盘文件(如果是导出则在导出的文件夹下的Virtual Hard Disks内),文件名往往是 虚拟机名称.VHDX,将这个文件发送到你的Proxmox机器上,放至有权限的任意目录,我的Windows7

scp d:\\Windows7.VHDX root@10.0.0.1:/tmp/
  1. SSH登录到Proxmox宿主机上,并使用如下命令检查你上传的Hyper-V磁盘文件是否有问题
qemu-img check -r all Windows7.vhdx
  1. 打开Proxmox网页并创建一个虚拟机,按照你原本虚拟机的配置进行选择,只需更改磁盘配置为一个1G大小的磁盘文件,创建完成之后记住这个文件的名字,后面我们直接转换上传的VHDX文件来替换这个1G大小的虚拟机磁盘,创建后如下图所示

  2. 在你的Proxmox找到第4步创建的虚拟机磁盘文件名,命令如下,找到后顺便删了

root@chancel:/tmp# find / -name '*101-disk-0.qcow2' 
/var/lib/vz/images/101/vm-101-disk-0.qcow2
root@chancel:/tmp# rm -f /var/lib/vz/images/101/vm-101-disk-0.qcow2
  1. 转换原本的虚拟机磁盘文件(VHDX)成Proxmox的QCOW2格式,并且保证输出到刚才创建
root@chancel:/tmp# qemu-img convert -O qcow2 Windows7.vhdx /var/lib/vz/images/101/vm-101-disk-0.qcow2
  1. 启动你的虚拟机

Virtualization Technology 2020-07-25 21:49:20

Gnome3 - Alt+Tab仅在当前桌面切换(不切换工作区)

设置如下

gsettings set org.gnome.shell.app-switcher current-workspace-only true

Operating System Linux 2020-06-24 10:59:51

Transmission - Transmission-daemon.service: Main process exited, code=killed, status=9/KILL

最近给一台256M Ubuntu VPS安排上Transmission,结果启动之后总是莫名其妙崩溃了

使用 sudo journalctl -u transmission-daemon 从日志里只能看到下面的输出,这输出来跟没输出了似的..

Jun 01 15:25:41 chancel systemd[1]: transmission-daemon.service: Main process exited, code=killed, status=9/KILL
Jun 01 15:25:41 chancel systemd[1]: transmission-daemon.service: Failed with result 'signal'.
Jun 01 15:25:50 chancel systemd[1]: Starting Transmission BitTorrent Daemon...

大致猜测跟内存有关系,因为安装还是以往那样安装,这台唯一奇葩的地方就是内存小

先看看内存情况 free -h,输出如下

chancel@chancel:~$ free -h
              total        used        free      shared  buff/cache   available
Mem:           229M        191M        3.4M          8K         34M         30M

尝试创建swapfile文件来缓存

sudo touch /swapfile
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1024000
sudo mkswap /swapfile
sudo swapon /swapfile

重启之后果然就正常了,此时内存输出如下

chancel@chancel:~$ free -h
              total        used        free      shared  buff/cache   available
Mem:           229M        191M        3.4M          8K         34M         30M
Swap:          999M        202M        797M

为了正常使用,建议最好开机挂载swapfile

Operating System 2020-06-01 23:45:28

Proxmox - PVE虚拟Windows10 CPU 占用高

使用PVE虚拟Windows10时,发现CPU占用特别高,于是更改了虚拟机的Processors设置,改为HOST并调整核心数一致,此时Windows理论性能应等同于物理机

但奇怪的是开启Windows之后CPU占用依旧非常高,开个Chrome都能占用100%,查看系统设置,发现Windows系统属性处仍然显示KVM CPU

很明显更改没生效,已确认重启过,最后思来想去,发现是快速启动的问题

控制面板-硬件和声音-电源选项-选择电源按钮功能处关闭快速启动之后重启即正常(奇怪的是他那里写着快速启动不影响重启),如下图

Operating System 2020-05-07 15:15:09

netdata - 一款Linux下开源的监控Web应用

一款部署方便监控内容十分详尽的Linux监控软件

Real-time performance monitoring, done right!

项目地址:netdata / netdata

Github Star 2020-04-15 14:40:05

4 of 11 | A total of 110