我使用 pyenv
设置 Python 3.6,以便将来可以管理多个 Python 版本(例如 3.7 和 3.8)。我没有使用 Homebrew 安装 Python,因为它改变了系统版本。这是我第一次使用 zsh
shell,因为它是 Catalina 操作系统中的默认 shell。目前,我在现有项目中使用 3.6.8 版本。
这是我当前的设置:
% pyenv 版本
结果:
system
* 3.6.8 (set by /Users/macbook/.python-version)
3.7.3
% python -V
结果为 Python 3.6.8
% which python
结果为 /Users/macbook/.pyenv/shims/python
% echo $PATH
结果到 /Users/macbook/.pyenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
我的~/.zshrc
的内容是PATH=$(pyenv root)/shims:$PATH
我使用% python -m venv venv
创建了一个虚拟环境,安装了所有必需的包,当我激活它并获取python路径时,
(venv) % python -V
Python 3.6.8
(venv) % which python
/Users/macbook/python-project/venv/bin/python
(venv) % echo $PATH
/Users/macbook/python-project/venv/bin:/Users/macbook/.pyenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
最后,当我尝试运行该应用程序时,我总是收到 zsh: abort
错误:
(venv) % python app.py
zsh: abort python app.py
(venv) % export FLASK_APP=app.py
(venv) % flask run
zsh: abort flask run
我不知道还缺少什么,或者我的 python 路径有什么问题吗?
谢谢!
最佳答案
在网上搜索后,我认为这是最新的 MacOS 或 Homebrew 的常见问题。这个thread解决了这个问题。
brew update && brew upgrade && brew install openssl
从/usr/local/Cellar/[email protected] 复制这两个文件/1.1.1g 到/usr/local/lib/
cd /usr/local/Cellar/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0e617e6b607d7d624e3f203f" rel="noreferrer noopener nofollow">[email protected]</a>/1.1.1g/
sudo cp libssl.1.1.1.dylib libcrypto.1.1.1.dylib /usr/local/lib/
添加符号链接(symbolic link)到缺少的 openssl 库
cd /usr/local/lib
sudo ln -s libssl.1.1.1.dylib libssl.dylib
sudo ln -s libcrypto.1.1.1.dylib libcrypto.dylib
关于python - zsh:当我尝试在 venv 中运行应用程序时,中止 python 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63080383/