【问题标题】:zsh: abort python error when I try to run the app in venvzsh:当我尝试在 venv 中运行应用程序时中止 python 错误
【发布时间】:2020-07-24 19:36:05
【问题描述】:

我使用pyenv 设置了 Python 3.6,以便将来可以管理多个 Python 版本(例如 3.7 和 3.8)。我没有使用 Homebrew 安装 Python,因为它会更改系统版本。这是我第一次使用zsh shell,因为它是 Catalina OS 中的默认 shell。目前,我在现有项目中使用 3.6.8 版本。

这是我目前的设置:

% pyenv versions

结果:

  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 路径有什么问题?

谢谢!

【问题讨论】:

  • 你可以使用anaconda吗?
  • @NavanK。我还没有使用它,但我不妨在我的下一个项目中尝试它。你能推荐一个最好的网站,它提供了一个很好的策略来与我的其他包管理一起设置吗?
  • problemsolvingwithpython.com/01-Orientation/… 是我更喜欢的那个。但是,您可能希望根据您的要求查看 Youtube 视频。 Anaconda 还将帮助您根据需要设置多个环境。
  • Anaconda 与你的问题无关。 (conda 也是环境管理器,而不是 anaconda,它是 conda 和某些 Python 包附带的 Python 发行版)。为什么你认为这是一个路径问题?你的脚步不是清楚地表明你的路很好吗?您是否尝试过使用 bash 来启动您的程序?我假设zsh: abort 意味着程序抛出了SIGABRT 信号。
  • 在 macOs 上,要了解 Python 进程崩溃的原因,您可以打开控制台应用并查看崩溃报告

标签: python zsh python-venv zshrc pyenv


【解决方案1】:

在网上搜索后,我认为这是最新的 MacOS 或 Homebrew 的常见问题。这个thread 解决了这个问题。

  1. brew update && brew upgrade && brew install openssl

  2. 将两个文件从/usr/local/Cellar/openssl@1.1/1.1.1g复制到/usr/local/lib/

    cd /usr/local/Cellar/openssl@1.1/1.1.1g/

    sudo cp libssl.1.1.1.dylib libcrypto.1.1.1.dylib /usr/local/lib/

  3. 将符号链接添加到缺少的 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

【讨论】:

    【解决方案2】:

    对我来说,以下工作:

    Python 3.6.9 MacOs Catalina 10.15.7

    cd /usr/local/Cellar/openssl@1.1/1.1.1h/
    cp lib/libssl.1.1.dylib lib/libcrypto.1.1.dylib /usr/local/lib
    cd /usr/local/lib
    sudo ln -s libssl.1.1.dylib libssl.dylib
    sudo ln -s libcrypto.1.1.dylib libcrypto.dylib
    

    感谢詹拉的回答

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-16
      • 1970-01-01
      • 2020-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多