/etc/zshrc

用最简洁的方式,在prompt里实现git branch的信息

增加parse_git_branch函数

final version

parse_git_branch() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}

PS1="%F{12}%D%d~%#>%f%F{red}\$(parse_git_branch)%f"

ZSH prompt的简单生成器

https://zsh-prompt-generator.site/

ZSH现实git branch的另外一种方法

autoload -Uz vcs_info
precmd_vcs_info() { vcs_info }
precmd_functions+=( precmd_vcs_info )
setopt prompt_subst
#RPROMPT=$vcs_info_msg_0_
PS1="%F{cyan}%D%d~%#>%f"$vcs_info_msg_0_

reference

add git branch name to bash prompt

https://scriptingosx.com/2019/07/moving-to-zsh-06-customizing-the-zsh-prompt/

Git删除文件或目录

我在watchlist上新开了一个分支,然后用这个分支模拟一个小团队内部的工作,这个团队有两个成员iMac和MacPro。

由于在iMac上的目录里包含了虚拟空间env,因此在同步到github上以后,我发现macpro里也多了env这个目录和其下的所有文件。

显而易见,这造成如下问题

  • 在github网站上,增加了没有任何用处的新目录env
  • 同步更新时,也要更新这些与主程序没有关系的虚拟环境的内容,而且这些虚拟环境的内容似乎更新的频率也挺高(我估计是日志什么的)

因此这个问题是必须要要解决的。

修改iMac的gitignore文件

  1. 首先在gitignore里,增加env目录,确保每次git add . 和git push不会更新这个目录的内容。
  2. 然后,删除已经提交到github上的文件。
  3. 把这些改变,同步到macpro这台电脑上

然后删除已经提交到github上的内容

最后,在macpro这台电脑的对应git目录里,执行git pull
下图就是执行git pull后,在本地删除env目录的情况

reference
使用git rm解决不应该提交的内容

强大的brew

brew doctor

当brew update无法使用时,运行brew doctor,一条条去修改就好。

brew config

Homebrew bottles (binary package) depend on Command Line Tools (CLT) for installation. After an upgrade, CLT should be reinstalled yet it does not mean xcode installation. To check if you have CLT installed?

brew config

If you found CLT: N\A. Follow @carlocab's answer. Run: xcode-select --install, ...

brew -v

检查目录

brew update

brew自身的升级

brew upgrade

各种package的升级

无法升级CLT时候

在公司网络,无法下载command line tools,可以直接从apple官网下载
https://developer.apple.com/download/all/

解决fatal: not in a git directory问题

使用如下命令

git config --global --add safe.directory /opt/homebrew/Library/Taps/homebrew/homebrew-services

参考
https://stackoverflow.com/questions/9329243/how-to-install-xcode-command-line-tools

https://github.com/Homebrew/discussions/discussions/2391

https://blog.csdn.net/qq_20349639/article/details/125069418

重启flask-1

间隔2-3个月后,重新开始编程遭遇的最常见问题是,是环境搭建

  • 换一台电脑,操作系统版本、python依赖的环境都不相同,比如我的imac,因为硬件限制,mac版本大概会永远停留在在Monterey;

  • 即使是曾经使用顺畅的老电脑,也许经过重大升级,比如2022年10月中旬刚刚发布的macOS-13.0,或许是公司办公网络进行了限制,没法顺利下载补丁,也会遭遇环境方面的问题。

import_tkinter问题

首先遭遇的是tkinter问题,如下所示

import _tkinter # If this fails your Python may not be configured for Tk

在stackoverflow上搜索,大部分答案给出的都是你没有安装好tkinter这个库,解决的方式也很简单,用brew安装

但是对我而言,问题没有这么简单,因为我执行这个命令后,出现的是新的错误提示

fatal: not in a git directory
Error: Command failed with exit 128: git

参考下面reference里小哥的分析,这是因为homebrew的组件homebrew-core和homebrew-cask没有被识别为Git仓库。

解决办法也很简单,直接按照brew的提示就好,输入

brew -v

按照提示来操作即可,如下图

怎么,还是报错,因为我copy如上命令时,没有发现最后一行其实是没有"/"链接的,因此会出现no such file or directory的提示,只要copy正确的命令即可

下来,就是正常安装

brew install python-tk

这样就完事了吗,当然不行,执行flask run,下面报错没有user这张数据库表,那么显然是数据库的问题了

数据库问题

因为我们使用的是SQLAlchemy的数据库,因此我们需要先建立一个数据库文件。

同时,我们会在目录下发现一个名为data.db的文件,这个文件名称来自app.py中的app.config函数

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////' + os.path.join(app.root_path, 'data.db') 

reference

Command failed with exit 128:git

重启flask学习

时隔多日,重启flask学习,这次打算严格按照如下技能要求自己

  • 使用git做版本管理
  • 使用venv虚拟环境
  • 使用nano或vi编辑器
  • 使用vscode
  • 坚持每天学习

删除venv环境,因为写错目录名称了

升级pip和pip3

从github上clone仓库

从一个远程仓库解绑,然后重新和另外一个仓库建立绑定关系