Macbook上的Python安装失败

时间:2020-04-24 15:39:14

标签: python macos homebrew zsh macos-catalina

所以我认为我的Python框架已完全损坏。 我知道这一点是因为我的脚本可以在Windows 10计算机上正常工作,并且当我尝试使用which 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)

此外,我最近尝试通过brew进行卸载和重新安装,而在此之前,我无法通过pip安装fire模块。解决的办法是卸载它,现在...我想我已经破坏了框架,只是为了安装一个模块。我的Macbook现在对于本地pythonic开发几乎完全没有用,这阻碍了我的工作流程。

好的,既然有人拒绝了,也没有提供解释,我将尽可能地冗长。

在Macbook上,我尝试运行适用于Windows计算机的python脚本:

PS C:\Users\richard.barrett\Git\Salesforce-CLI\Python\Cases> python -V
Python 3.8.0
PS C:\Users\richard.barrett\Git\Salesforce-CLI\Python\Cases> python .\read_all_handover_cases.py
The file does not exist encryption on secrets.json not in use
00DE0000000JFpb!AQwAQExSYpskesZsmLXq9jYeojeBC1px0ojrhLuxMYHpCBJgz6iM5jVqZxmFzp4sQHy6DvXhnNsQnw.0JGNolxziUpWJfdNI
        0               1                 2        3   ...     9      10     11             12
0  2910831  Technical Case  Aleksandr Dobdin  Pending  ...  false  false  false  Sev3 (Normal)
1  3362385  Technical Case   Bradley Shirley  Pending  ...  false  false  false     Sev4 (Low)
2  3492261  Technical Case  Othmane Madjoudj  Pending  ...  false  false  false  Sev3 (Normal)

[3 rows x 13 columns]

哪个很好,我也希望在Macbook上看到什么。但是,由于某些奇怪的原因,我的Python无法正常工作,并且它指向的是Macbook上的旧版本。我尝试运行相同的脚本,并得到以下信息:

 richardbarret@1152-MBP  ~/Git/SalesforceCLI/Python/Cases   master ⍟3  python read_all_handover_cases.py                                                ✔  1320  10:35:06
Traceback (most recent call last):
  File "read_all_handover_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

当我查找错误时,它表示我正在运行旧版本的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 some_script_needing_version_3.py标记为可执行文件的脚本时。

1 个答案:

答案 0 :(得分:0)

是的,它是一个损坏的Python框架。 我了解人们为什么会投票反对,因为这基本上是在说我没有安装模块。但是,我安装了Python 2.7版,这是Macbook附带的版本。每次我使用pip安装它时,都会说已经满足要求。但是,我正在使用的应用程序在python3.7上运行,因此是的...我没有为Python3.7安装模块。但是,每次我运行pip3python3 python都会崩溃。

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

将此添加到您的Shell配置文件中: export DYLD_LIBRARY_PATH=/usr/local/opt/openssl/lib:$DYLD_LIBRARY_PATH

修复步骤: 1.卸载Openssl,然后使用Brew重新安装它,然后卸载密码学

brew uninstall openssl
brew install openssl 
pip uninstall cryptography
  1. 运行Brew Doctor && Brew Cleanup以获取损坏的符号链接和错误目录的列表:
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>

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