我首先使用
安装了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
有人可以帮我解决这个问题吗?我正在尝试学习编程,但是如果不解决这个问题就无法继续
答案 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.dylib
和libcrypto.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附带了自己的python3
和pip3
版本,因此这可能是macOS与Brew安装的Python库之间的冲突。我不再使用Brew处理与Python相关的任何事情,解决了类似的问题。
我的建议:从全新安装的Catalina中运行sudo pip3 install pipenv
。为您处理的每个项目创建一个单独的目录,并在每次处理时从该目录运行pipenv shell
。不要再在系统范围内安装任何软件包,也不要覆盖macOS的Python。您在Pipenv托管的虚拟环境中所做的任何事情-仅通过pipenv install <pkg>
安装软件包。
完成所有这些操作后,会将正确版本的Python二进制文件和所有相关软件包保留在每个项目的~/.local/share/virtualenvs/
内的目录中。这样,将来的macOS更新不应该每个中断都依赖。