Macbook上的Python安装已中断

Macbook上的Python安装已中断,python,macos,homebrew,zsh,macos-catalina,Python,Macos,Homebrew,Zsh,Macos Catalina,所以我认为我的Python框架已经完全崩溃了。 我知道这一点,因为我的脚本在Windows10机器上工作,没有任何问题,当我试图用哪个python检查python版本时,我得到了一个错误的选项消息。当我尝试运行任何python脚本时,我得到以下结果: richardbarret@1152-MBP  ~/Git/SalesforceCLI/Python/Cases   master ⍟3  python read_all_sev1_cases.py

所以我认为我的Python框架已经完全崩溃了。 我知道这一点,因为我的脚本在Windows10机器上工作,没有任何问题,当我试图用
哪个python
检查python版本时,我得到了一个错误的选项消息。当我尝试运行任何python脚本时,我得到以下结果:

 richardbarret@1152-MBP  ~/Git/SalesforceCLI/Python/Cases   master ⍟3  python read_all_sev1_cases.py                                                    ✔  1316  10:34:36
Traceback (most recent call last):
  File "read_all_sev1_cases.py", line 14, in <module>
    import simple_salesforce
  File "/Users/richardbarret/Library/Python/2.7/lib/python/site-packages/simple_salesforce/__init__.py", line 4, in <module>
    from .api import Salesforce, SFType
  File "/Users/richardbarret/Library/Python/2.7/lib/python/site-packages/simple_salesforce/api.py", line 12, in <module>
    from urllib.parse import urljoin, urlparse
ImportError: No module named parse
 richardbarret@1152-MBP  ~/Git/SalesforceCLI/Python/Cases   master ⍟3  which python                                                                   1 ↵  1317  10:34:41
type: bad option: -l
 richardbarret@1152-MBP  ~/Git/SalesforceCLI/Python/Cases   master ⍟3  python -V                                                                      1 ↵  1318  10:34:49
Python 2.7.16
 richardbarret@1152-MBP  ~/Git/SalesforceCLI/Python/Cases   master ⍟3  pip -V                                                                           ✔  1319  10:34:52
pip 20.0.2 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
这很好,我希望在我的Macbook上也能看到。然而,出于某种奇怪的原因,我的Python无法工作,它指向macbook上的旧版本。我尝试运行相同的脚本,得到以下结果:

brew doctor check_for_bad_python_symlink
brew doctor check_for_broken_symlinks
richardbarret@1152-MBP ~/Git/SalesforceCLI/Python/Cases  主人⍟3. python read_all_handership_cases.py ✔  1320 10:35:06
回溯(最近一次呼叫最后一次):
文件“读取所有移交案例.py”,第14行,在
导入简单的销售人员
文件“/Users/richardbarret/Library/Python/2.7/lib/Python/site-packages/simple\u-salesforce/\uuuuuuu-init\uuuuu.py”,第4行,在
从.api导入Salesforce,SFType
文件“/Users/richardbarret/Library/Python/2.7/lib/Python/site-packages/simple_-salesforce/api.py”,第12行,在
从urllib.parse导入urljoin,urlparse
ImportError:没有名为parse的模块
当我查找错误时,它说我正在运行一个旧版本的Python。我通过brew重新安装了它,在所有修补程序开始使用python fire模块之前……我没有问题,可以在CLI中运行我的脚本

此外,每当我尝试使用pip安装某些东西时,python就会崩溃:

Process:               Python [56510]
Path:                  /usr/local/Cellar/python/3.7.7/Frameworks/Python.framework/Versions/3.7/Resources/Python.app/Contents/MacOS/Python
Identifier:            Python
Version:               3.7.7 (3.7.7)
Code Type:             X86-64 (Native)
Parent Process:        zsh [46993]
Responsible:           iTerm2 [838]
User ID:               502

Date/Time:             2020-04-24 11:47:24.835 -0500
OS Version:            Mac OS X 10.15.4 (19E287)
Report Version:        12
Anonymous UUID:        229910A5-BB3B-6822-3072-5658F7AEAFD4

Sleep/Wake UUID:       7FFE90BD-04FC-4B46-85DE-012621D1B4B4

Time Awake Since Boot: 59000 seconds
Time Since Wake:       4600 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Application Specific Information:
/usr/lib/libcrypto.dylib
abort() called
Invalid dylib load. Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI.

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib          0x00007fff734d933a __pthread_kill + 10

虽然我以前一直有这个问题,但当我试图调用一个没有用python3标记为可执行的脚本时,有些脚本需要版本py,所以是的,它是一个坏了的Python框架。 我理解为什么人们对它投了反对票,因为它基本上是说我没有安装模块。然而,我让他们安装了Python2.7版,这是Macbook附带的版本。每次我用
pip
安装它时,它都会说已经满足了要求。但是,我使用的应用程序运行在python3.7上,因此是的……我没有为python3.7安装模块。然而,每次我运行
pip3
python3
python时,python都会崩溃

我使用Brew来帮助管理一些事情。 我不得不在运行brew医生和brew清理时清理一些东西。 然后我必须修复macbook上所有损坏的符号链接,并删除一些损坏的库,这些库不允许我分别运行pip3或python3。此外,我必须通过brew卸载openssl,还必须卸载python中的加密,从而在我的
.zshrc
配置文件中添加以下行

将其添加到您的Shell配置文件中:
export DYLD\u LIBRARY\u PATH=/usr/local/opt/openssl/lib:$DYLD\u LIBRARY\u PATH

修复的步骤: 1.卸载Openssl并使用Brew重新安装,然后卸载加密

brew uninstall openssl
brew install openssl 
pip uninstall cryptography
  • 运行Brew Doctor&&Brew Cleanup以获取断开符号链接和坏目录的列表:
  • 如果您不使用,请删除任何有权限问题的坏目录:

    sudo rm -rf /directory/list/bad/from/brew/doctor/
    
    对我来说,我有一个完整的目录列表,我必须删除这些目录。我将它们保存到一个文件中,并针对该文件运行以下命令。我将所有坏目录保存到一个名为
    doctor.log
    的文件中,然后从系统中递归删除它们

    for i in $(cat doctor.log); do sudo rm -rf $i; done
    
    之后,我处理了系统上所有的坏符号链接。 从以下内容中识别任何和所有损坏的符号链接后,将其链接:

    brew doctor check_for_bad_python_symlink
    brew doctor check_for_broken_symlinks
    
    用以下方法修复它们:

    brew link --overwrite <package>
    
    brew链接--覆盖
    

    之后,您应该能够使用
    pip3
    安装东西,并使用
    python3
    运行未标记为可执行的脚本。这解决了我的问题,现在我可以用python3运行东西了。此外,找到这一点的一个好方法是通过指定python和python3并以交互方式使用模块来使用以下内容。出于某些奇怪的原因,MacBooks 2020及以下版本附带Python2.7(已知版本)。唯一的修复方法是指定路径和/或将python用作别名

    另外,我已经重新安装了模块
    simple salesforce
    ,这里提到了这一点,但是parse不存在。所以这不是问题所在。只是尝试了一下,现在pip3似乎开始工作了:export DYLD_LIBRARY_PATH=/usr/local/opt/openssl/lib:$DYLD_LIBRARY_PATH所以解析错误来自simple_salesforce试图从python2中提取信息。我只需要弄清楚为什么我的框架仍然指向Python2.7