Mac OS Catalina全新安装的pip3和pipenv问题

时间:2019-12-08 03:58:01

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

我首先使用

安装了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

有人可以帮我解决这个问题吗?我正在尝试学习编程,但是如果不解决这个问题就无法继续

3 个答案:

答案 0 :(得分: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)再次发挥了作用。

答案 1 :(得分:2)

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

python3 -m pip install pipenv  

(而不是pip3 install pipenv

答案 2 :(得分:1)

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

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

完成所有这些操作后,会将正确版本的Python二进制文件和所有相关软件包保留在每个项目的~/.local/share/virtualenvs/内的目录中。这样,将来的macOS更新不应该每个中断都依赖。