【问题标题】:Problems with pip3 and pipenv with Mac OS Catalina fresh installMac OS Catalina 全新安装的 pip3 和 pipenv 问题
【发布时间】:2019-12-08 03:58:01
【问题描述】:

我首先使用安装了 xcode 开发工具

%xcode-select --install

然后我使用

安装 Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

然后我做了

%brew install python3

%pip3 install pipenv

但是当我打电话时

%pip3

我明白了

% pip3
Traceback (most recent call last):
  File "/Library/Developer/CommandLineTools/usr/bin/pip3", line 10, in <module>
    sys.exit(main())
TypeError: 'module' object is not callable

这是我的 pip3 和 python3 所在的位置

% which pip3
/usr/bin/pip3

% which python3
/usr/bin/python3

谁能帮我解决这个问题。我正在尝试学习编程,但如果不解决此问题,我将无法继续

【问题讨论】:

标签: python-3.x pip homebrew zsh macos-catalina


【解决方案1】:

MacOS Catalina 附带了自己的 python3pip3 版本,因此这可能是 macOS 和 Brew 安装的 Python 库之间的冲突。我不再使用 Brew 解决与 Python 相关的任何问题,从而解决了类似问题。

我的建议:从全新安装的 Catalina 运行 sudo pip3 install pipenv。为您处理的每个项目创建一个单独的目录,并在每次处理时从该目录运行pipenv shell。不要费心在系统范围内安装任何包,也不要覆盖 macOS 的 Python。您所做的任何事情,都在 Pipenv 托管的虚拟环境中进行——仅通过 pipenv install &lt;pkg&gt; 安装软件包。

执行所有这些操作会将 Python 二进制文件的正确版本和所有相关包保存在每个项目的 ~/.local/share/virtualenvs/ 内的目录中。这样,未来的 macOS 更新不应该每次都打破依赖关系。

【讨论】:

  • 我最终下载了 high sierra 而不是 Catalina。但如果我切换回 Catalina,我会记住这一点
【解决方案2】:

升级到 Catalina 后我遇到了类似的问题,因为我已经在使用自制软件并且 Python/pipenv 停止按预期工作。我的 Python 每次都崩溃了,我运行 pipenv install 时出现了这个 developer.apple.com thread 中描述的错误。 Mickey Ristroph 的答案听起来像是一个不错的解决方法,但它并不能真正解决问题。

我希望能够对我安装的所有 MacOS 软件(包括 Python)使用自制软件。但是有帮助,因为问题是使用了错误的版本libcrypto dylib 版本。要解决此问题,请更新和升级 brew 软件包并确保已安装 openssl

brew update && brew upgrade && brew install openssl

然后我们创建新的符号链接到安装的自制软件 libssl.dyliblibcrypto.dylib 库:

# go to homebrew installed openssl dir:
cd /usr/local/Cellar/openssl/1.0.2t/lib
sudo cp libssl.1.0.0.dylib libcrypto.1.0.0.dylib /usr/local/lib/

cd /usr/local/lib
# if there are links already, you may backup them:
mv libssl.dylib libssl_bak.dylib
mv libcrypto.dylib libcrypto_bak.dylib

# now create new symbolic links:
sudo ln -s libssl.1.0.0.dylib libssl.dylib
sudo ln -s libcrypto.1.0.0.dylib libcrypto.dylib

现在我的自制软件安装了 Python(和 pipenv)再次像魅力一样工作。

【讨论】:

    【解决方案3】:

    您需要将 macOS Catalina 中用于安装库和支持的原始命令更改为:

    python3 -m pip install pipenv  
    

    (而不是pip3 install pipenv

    【讨论】:

      猜你喜欢
      • 2020-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-14
      • 2020-07-03
      • 2013-11-19
      • 2017-06-20
      相关资源
      最近更新 更多