有时候系统的python虚拟环境被破坏,你可能会遇到这种错误:
yld: Library not loaded: @executable_path/../.Python
Referenced from: /Users/esp32/.espressif/python_env/idf4.1_py2.7_env/bin/python
Reason: image not found
在github上找到一个修复方法,只需要建立一个shell脚本,比如~/fixenv.sh
,内容如下:
#!/usr/bin/env bash
ENV_PATH="$(dirname "$(dirname "$(which pip)")")"
SYSTEM_VIRTUALENV="$(which -a virtualenv|tail -1)"
echo "Ensure the root of current virtualenv:"
echo " $ENV_PATH"
read -p "‼️ Say no if you are not sure (y/N) " -n 1 -r
echo
PYEXC_DEF="$(sed -n '1s/^#!//p' $SYSTEM_VIRTUALENV)"
read -p "🐍 Choose which python to use? [$PYEXC_DEF] " PYEXC
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo "♻️ Removing old symbolic links......"
find "$ENV_PATH" -type l -delete -print
echo "💫 Creating new symbolic links......"
$SYSTEM_VIRTUALENV "$ENV_PATH" -p ${PYEXC:-$PYEXC_DEF}
echo "🎉 Done!"
fi
然后chmod +x ~/fixenv.sh && ~/fixenv.sh
,根据提示选择对应的python虚拟环境和原始环境(我的是/usr/local/bin/python
)即可:
~/fixenv.sh
Ensure the root of current virtualenv:
/Users/esp32/.espressif/python_env/idf4.1_py2.7_env
‼️ Say no if you are not sure (y/N) y
🐍 Choose which python to use? [/Users/simonliu/.pyenv/shims/python] /usr/local/bin/python