记录一下从 0 跑起 AI Python FastAPI Service 过程。

先全局装一下 pyenv, 用来管理 Python 版本,我理解就是跟 nvm 是一样的。另外 virtualenv 插件也是要另外装的。

https://github.com/pyenv/pyenv

https://github.com/pyenv/pyenv-virtualenv

装完之后发现 pyenv global 3.10 不成功,原来是我之前在自己的 .zshrc 写了个更高优先级的 bin 路径,往自己的 .bashrc 之类的文件加上这几行:

export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

这里没有加上自动进入 virtualenv 的 shell, 因为我每次进入那个 dir 都不是直接打开 shell 的,都是 cd 进去的,所以没啥用,手动操作一下就行。

进项目里装依赖,注意配置一下对应的 registry, 我是直接在全局 ~/.config/pip 配了个我司的源

[global]
index-url = <https://pypi.datastory.com.cn/public/simple>
pip install -r requirements.txt

安装依赖,等,非常顺利,

下一步要准备一个本地的 .env 配置文件,直接到测试环境的 K8s secrets 上搞一个下来,这一步 AI 给出了非常 perfect 的答案。直接照抄就行,很赞。

Untitled

终于可以 run 了,但报错了…

ImportError: dlopen(~/.pyenv/versions/langchain-service/lib/python3.10/site-packages/psycopg2/_psycopg.cpython-310-darwin.so, 0x0002): symbol not found in flat namespace '_PQbackendPID'

查了一下,貌似是这个 psycopg2 对 M1 CPU 不太支持,找到了可用的步骤。这个时候 AI 感觉就没啥用,我用同样的报错问了一下 ChatGPT, 它貌似并不能给出合理的思路,还是要 Google.