Python Установка прервана на Macbook - PullRequest
0 голосов
/ 24 апреля 2020

Так что я думаю, что мой Python Framework полностью сломан. Я знаю это, потому что мои сценарии работают на машине Windows 10 без каких-либо проблем, и когда я пытаюсь проверить версию python с помощью which 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, тогда как до того, как он работал, но я не смог установить пожарный модуль через пипс Исправление состояло в том, чтобы удалить его, и теперь ... Я думаю, что сломал структуру только для установки одного модуля. Мой macbook сейчас почти полностью бесполезен для локальной разработки на pythoni c и мешает моим рабочим процессам.

Хорошо, так как кто-то проголосовал против и не дал объяснения, я буду настолько многословен, насколько это возможно.

На моем Macbook я пытаюсь запустить скрипт python, который работает с моей Windows машиной:

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.

Кроме того, вот python cra sh каждый раз, когда я пытаюсь установить что-то с помощью pip:

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 голосов
/ 24 апреля 2020

Так что да, это был сломанный Python Framework. Я понимаю, почему люди проголосовали за это, потому что в основном говорят, что у меня не установлены модули. Тем не менее, я установил их с версией Python 2.7, которая поставляется с Macbook. Каждый раз, когда я устанавливал его с pip, он говорил, что требования уже выполнены. Однако приложения, которые я использую, работают на python3 .7, и поэтому да ... У меня не было установленных модулей для Python3 .7. Однако каждый раз, когда я запускаю pip3 или python3 python, я получаю sh.

Я использовал Brew для управления некоторыми вещами. Мне пришлось один убрать кое-что, запустить варево доктора и заварить зачистку. Затем мне пришлось исправить все сломанные символические ссылки на моем macbook и удалить некоторые библиотеки, которые были сломаны, которые не позволяли мне запускать pip3 или python3 соответственно. Кроме того, мне пришлось удалить openssl через brew, а также удалить криптографию в python, добавив, таким образом, следующую строку в мой профиль .zshrc.

Добавьте это в свой профиль оболочки: export DYLD_LIBRARY_PATH=/usr/local/opt/openssl/lib:$DYLD_LIBRARY_PATH

Действия по исправлению: 1. Удалите Openssl и переустановите его с помощью Brew и удалите криптографию

brew uninstall openssl
brew install openssl 
pip uninstall cryptography
Запустите 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 и работая с модулями в интерактивном режиме. По какой-то странной причине MacBook 2020 года выпуска и ниже поставляются с Python2 .7 (Известная проблема). Единственное исправление - указывать пути и / или просто работать с python в качестве псевдонима.

...