2022年2月

起因是之前闲着没事,自己动手编译了PyTorch和TensorFlow,然后把生成的轮子(.whl)留了下来,打算在之后需要使用的时候自己安装。这里顺便吐槽一句,PyTorch官方的wheel包里自带了cudaRT和CUDNN,搞得安装包动不动上1G(自己编译的非自带版本仅200M+),而且服务器还不稳定,下着下着就自动断线了= =

然后经典安装本地轮子命令:

pip install torch-1.9.0a0+gitdfbd030-cp36-cp36m-win_amd64+cu101.whl

然后直接提示说不支持我装这个包。Python版本是对的,编译和安装wheel时用的也都是64位版本,网上那些Python版本都搞不对的低级错误我怎么可能犯,当时一度怀疑是pip出了问题。试图到网上找pip的verbose选项,结果发现对于pip install指令并不支持这个功能,于是只好回到无头苍蝇状态,继续搜索有关轮子装不上的问题。

然后恰好看到这个提问,里面说pip会使用文件名来判断当前wheel是否支持目标平台。(使用pip debug --verbose可以查看当前平台pip支持的所有目标平台标识符)

然后仔细一想,为了区分CPU和不同CUDA版本下编译出来的轮子,我在每个文件末尾添加了CUDA版本信息,如上面命令中的+cu101,于是猜测是不是这个动作干扰了pip对轮子信息的判定。结果删了之后马上就好了= =

于是得出结论,不要轻易修改python wheel的文件名;如果一定要添加辅助信息的话,可以在版本号后面用加号+链接添加所需要的信息,例如PytTorch自己编译时自动添加的git版本号。

Jupyter Notebook是Jupyter Lab的上一代产品,虽然奠定了Jupyter系列的基本用法与功能,不过可扩展性还是差了点,不像Jupyter Lab一样,直接提供了基于json的用户可定义配置文件。

Jupyter Notebook的默认代码字体竟然是宋体,看得我人惊呆了。jupyterthemes包能够修改Jupyter Notebook的字体,但是和主题绑定在一起了,显得不太清真。于是打算手动修改内置CSS样式。找到notebook的pip包的static/style/style.min.css,修改其中.CodeMirror样式,添加类似于font-family: Consolas;的字体声明,重启Jupyter Notebook服务生效。