各个软件换源

mu ou

在国内用原源都会很慢, 所以总结一下各个软件(?吧)换源方法.

Qt#

使用Maintain管理kit时,可以在Settings中设置Repositories,设置地址可从Qt Downloads页面查询.

apt#

可解决版本升级时的问题,即使用了国内源,最后一个文件不知道为什么还是从国外拉取…

# sudo touch /etc/apt/apt.conf
sudo vim /etc/apt/apt.conf

-> Acquire::http::Proxy “http://127.0.0.1:8001”;

FreeBSD#

mkdir -p /usr/local/etc/pkg/repos vim /usr/local/etc/pkg/repos/bjtu.conf

bjtu: {
	url: "pkg+http://mirror.bjtu.edu.cn/reverse/freebsd-pkg/${ABI}/quarterly",
	mirror_type: "srv",
	signature_type: "none",
	fingerprints: "/usr/share/keys/pkg",
	enabled: yes
}
FreeBSD: { enabled: no }

pkg update

Qt#

#

  • 中国科学技术大学:http://mirrors.ustc.edu.cn/qtproject/
  • 清华大学:https://mirrors.tuna.tsinghua.edu.cn/qt/
  • 北京理工大学:http://mirror.bit.edu.cn/qtproject/
  • 中国互联网络信息中心:https://mirrors.cnnic.cn/qt/

Python Pip#

pip install --index https://pypi.mirrors.ustc.edu.cn/simple/ dlib(numpy等包名)

#

Nodejs Npm#

不过好像换了会有问题.Npm各个包依赖混乱不堪,不忍直视.

Python 笔记

python

pip cache 目录#

echo $PIP_CACHE_DIR

特殊函数调用 property#

使用字段的方式调用函数

from datetime import datetime
from pydantic import BaseModel
class InstallCountInfo(BaseModel):
	count: int
	total: int
	@property
	def done_rate(self):
		return round(self.count / self.total, 4)
class InstallCount(BaseModel):
	pass_day: int
	install_day: datetime
	info: InstallCountInfo

彻底摆脱to_dictfrom_dict#

使用 pydantic#

BaseModel类型支持:

  • b = BattleAxiePositionInfo.parse_obj(DICT_DATA)
  • b.json()
  • b.dict()
  • parse_file
  • parse_raw
from pydantic import BaseModel
class PositionInfo(BaseModel):
    error: int = -1 # 收集错误
    none: int = 0 # 还没开始
    clicked: int = 1 # 在client 赋此值
    done: int = 2 # 在server 赋此值
    xy: List[int] = [0, 0]
    status: int = 0 # clicked or done or none or error
class BattleAxiePositionInfo(BaseModel):
    our: List[PositionInfo] = [PositionInfo(), PositionInfo(), PositionInfo(), PositionInfo(), PositionInfo(), PositionInfo()]
    enemy: List[PositionInfo] = [PositionInfo(), PositionInfo(), PositionInfo(), PositionInfo(), PositionInfo(), PositionInfo()]

pp = BattleAxiePositionInfo()
print(f"pp json: {pp.json()}")
dict_pp = pp.dict()
pp = BattleAxiePositionInfo.parse_obj(dict_pp)

pp json: {“our”: [{“error”: -1, “none”: 0, “clicked”: 1, “done”: 2, “xy”: [0, 0], “status”: 0}, {“error”: -1, “none”: 0, “clicked”: 1, “done”: 2, “xy”: [0, 0], “status”: 0}, {“error”: -1, “none”: 0, “clicked”: 1, “done”: 2, “xy”: [0, 0], “status”: 0}, {“error”: -1, “none”: 0, “clicked”: 1, “done”: 2, “xy”: [0, 0], “status”: 0}, {“error”: -1, “none”: 0, “clicked”: 1, “done”: 2, “xy”: [0, 0], “status”: 0}, {“error”: -1, “none”: 0, “clicked”: 1, “done”: 2, “xy”: [0, 0], “status”: 0}], “enemy”: [{“error”: -1, “none”: 0, “clicked”: 1, “done”: 2, “xy”: [0, 0], “status”: 0}, {“error”: -1, “none”: 0, “clicked”: 1, “done”: 2, “xy”: [0, 0], “status”: 0}, {“error”: -1, “none”: 0, “clicked”: 1, “done”: 2, “xy”: [0, 0], “status”: 0}, {“error”: -1, “none”: 0, “clicked”: 1, “done”: 2, “xy”: [0, 0], “status”: 0}, {“error”: -1, “none”: 0, “clicked”: 1, “done”: 2, “xy”: [0, 0], “status”: 0}, {“error”: -1, “none”: 0, “clicked”: 1, “done”: 2, “xy”: [0, 0], “status”: 0}]}