1 python 环境配置注意事项

1.1 安装 conda 环境

注意: miniconda 小一些,按需自行安装软件包,因为用的少,所以我通常使用 miniconda

1.2 conda 常用命令

  • 显示 conda 的配置信息: conda info
  • 新建环境 conda create -n ENV_NAME python=版本号
  • 激活环境 conda activate ENV_NAME
  • 安装包 conda install PACKAGE_NAME
  • 卸载包 conda remove PACKAGE_NAME
  • 显示所有已安装的包 conda list
  • 退出环境 conda deactivate
  • 删除环境 conda env remove -n ENV_NAME
  • 显示所有已安装的环境 conda env list

注:

  • (1)创建环境时最好按需指定 python 版本号
  • (2)conda install 的软件包来自 conda 及其镜像站维护的软件源;
  • (3) anaconda或miniconda 默认会修改 .bashrc, 可能不会修改 .zshrc,建议同步将修改内容拷贝至 .zshrc

1.3 pip 常用命令

  • 确认是否安装了pip : python -m ensurepip

  • 安装指定版本的pip : python -m pip install pip==[version]

  • 安装软件包: pip install [package]

  • 安装指定版本的包: pip install [package==version]

  • 升级软件包: pip install -U [package]

  • 卸载软件包: pip uninstall [package]

  • 设置 pip 镜像源: pip config set global.index-url 源地址 # 如: https://pypi.tuna.tsinghua.edu.cn/simple

    查询源中的软件包(因恶意搜索已停用): pip search [package],目前只能到网站查询 https://pypi.org/search (via a browser)

批量安装:

  • 安装 requirements.txt 文件中指定的所有软件包: pip install [-U] -r requirements.txt
  • 将当前环境中的包列表导出到 requirements.txt 文件中: pip freeze > requirements.txt

注:pip 的软件源来自 https://pypi.org 及其镜像站

1.4 两者区别

(1)pip 仅仅是包管理工具,而 conda 同时还是一个环境管理工具

(2)pip 能安装 pypi 里的一切 Python 包,更加全面和专注,而 conda 可安装的 Python 包数量相比 pip 要少很多。

所以,日常使用 conda 管理环境, 在环境内部使用 pip 管理软件包。

1.5 注意事项

(1)安装 conda 后,注意是否在某个环境当中。conda 安装时默认自动进入 base 环境,可在 .bashrc 和 .zshrc 中运行 conda activate 环境名,以便登录后自动进入自己熟悉的环境,当然使用默认环境 base 也是可以的。

(2)pip 的软件包依赖关系管理比 conda 要好一些,默认情况下使用 pip 安装软件包

(3)pip 的批量安装非常好用,无论是别人发布的 python 软件,还是自己编写的软件, 都可以用 requirements.txt 文件辅助完成环境配置。

2 node.js 环境配置

2.1 安装版本管理软件

node.js 的版本管理软件也有多个,作用类似于 python 的 conda。最常用的版本管理软件是 nvm 和 fnm ,都很好用。此处主要介绍 nvm。

安装 nvm: sudo pacman -S nvm 后,根据提示修改 .bashrc 和 .zshrc

注意:

(1)如果已安装 node 和 npm ,最好使用 pacman 删除(或手工删除,网上有方法),再使用 nvm 进行管理。

(2)如果不想使用 nvm 了,直接删除 $NVM_DIR 目录即可 (通常是 ~/.nvm)

2.2 nvm 常用命令

  • 查看本地可用 node 版本: nvm list
  • 查看源中可用 node 版本: nvm list-remote
  • 安装所需 node 版本: nvm install 版本号
  • 切换至指定 node 版本: nvm use 版本号
  • 删除本地已安装的版本: nvm uninstall 版本号

2.3 npm 常用命令

npm 是 node 的软件包管理工具,类似于 python 的 pip。npm 通常会在当前目录下创建一个 package.json 文件,用于存储当前工作目录中的包列表。

npm 的软件包分为局部和全局两类,全局软件包将安装到 ~/node_moudles 中,本人登录后随处可使用。局部软件包通常安装在当前目录的 node_moudles 目录中,只在当前目录环境中起作用。

  • 查看当前 npm 源: npm config get registry

  • 切换当前 npm 源: npm config set registry=源地址 # 如: https://registry.npmmirror.comhttps://mirrors.tuna.tsinghua.edu.cn/nodejs-release/

  • 初始化: npm init # 创建 package.json 文件:

  • 安装软件包:
    npm install # 安装 package.json 文件中列出的所有软件包和依赖
    npm install 软件包[@版本号] # 安装指定(或默认)版本的软件包,并且将其添加到 package.json 文件的运行时列表中
    npm install 软件包 --save-dev # 安装指定(或默认)版本的软件包,并且将其添加到 package.json 文件的开发时列表中
    npm install --global 软件包 # 全局安装
    npm uninstall 软件包 # 删除软件包,并将其从 package.json 的运行时列表中删除
    npm list # 显示已安装软件包列表

注: npm 源可以根据网络情况自行选择,华中地区可以考虑中国科大。

3 Hexo 博客环境配置

注:

(1)常见有 hexo,hugo, jecklly 等, 我已经习惯用 hexo 了,其他不熟。

(2)必须先安装 node.js ,版本需不低于 10.13,建议使用 Node.js 12.0 及以上版本

3.1 安装 hexo 命令行工具

运行: npm install -g hexo-cli

测试是否能用: hexo --version

3.2 创建博客本地工作目录

运行:

1
2
3
hexo init 工作目录名
cd 工作目录名
npm install

第一条命令会创建完整的目录结构,第三条命令会按照 package.json 文件自动安装所需 node 软件包

目录结构大致如下:

1
2
3
4
5
6
7
8
.
├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── _drafts
| └── _posts
└── themes

上述目录中:

(1)_config.yml: 是网站配置文件,需要按需配置,配置方法见 https://hexo.io/zh-cn/docs/configuration

(2)package.json: 所需软件包信息,无需手工改动

(3)source 目录: 所有源文件的存储地。其中 _drafts 文件夹中的内容是草稿,hexo 默认不会处理,_posts 目录中的 markdown 文件都会被处理。处理后的文件会自动存储在与 source 同级的 public 文件夹中。

(4)themes 目录: 存储网站所用的模板,https://hexo.io/themes/ 中有大量模板可用。

3.3 创建博客

(1)markdown 文件的内容

“FrontMatter” + “content”

(2)模板配置文件

除了 _config.yml 配置文件外,不同网站模板自身还有一些配置需求,这通常放在网站的根目录下,命名为 _config.主题名.yml。不同主题的配置文件需参考相应的模板使用说明。

(3)创建博客 markdown

运行:hexo new --path a/b/c '黄金大镖客' 会自动在 source/_posts 目录下生成目录和文件 a/b/c.md, 并且博客标题为 黄金大镖客

(4)撰写博客 markdown

按需设置 frontmatter 各字段内容,按照 markdown 语法编写 content 部分的内容即可。

(5)构建博客

当博客编辑完成后,回到博客根目录,运行 hexo generate 或简写 hexo g 即自动开始生成网页,如果博客语法有错会有提示。

(6)本地测试博客

运行 hexo service 或简写 hexo s, 会启动本地的web服务器,并在 https://localhost:4000 提供博客网页服务,可用浏览器打开该网址查看博客效果。
hexo service 支持动态构建,即任何对 markdown 的修改和保存,只要不出现语法等错误,都会自动生成网页并反映在浏览器中(需要手工刷新)

(7)部署到 github

运行 hexo deploy 或简写 hexo d ,会根据 _config.yml 中的配置自动将网站上传到 github 指定仓库的指定分支。配置方法参考 https://hexo.io/zh-cn/docs/github-pages#一键部署

部署完成后,在浏览器中查看 https://xxx.github.io/

技巧和提示:

(1) 因为博客就是一个 markdown 文件,所以不一定使用 hexo new 生成,可以直接手工编写。最快捷的方式是直接拷贝以前已经作好的 markdown 博客, rename 后修改 frontmatter 中的标题字段即可。
(2) 最好在 source 目录中设置合理的文件夹结构,以便区分不同类型的主题内容。
(3) hexo 会根据 frontmatter 中的 categories 字段自动生成网页目录和索引网页,也就是说,所有 categories 字段相同的博客,会在一个网页中被列表显示。因此,最好规划下自己的 categories 结构。
一般 categories 只需要两层足已。
(4) frontmatter 中的 tag 字段其实就是网页的关键字,主要为了方便博客查找,可以随意设置,但通常是名词。
(5) 博客网页的仓库和博客源码的仓库尽量分开,博客网页的仓库是 public 的, 博客源码的仓库是 private 的。 hexo deploy 针对的是前者。
(6) 博客源码的 git 配置按照普通的仓库操作即可,但最好设置为 private。