После обновления Mojave возникли ошибки библиотеки Readline.Python 3.5 требует Readline 7, но Brew устанавливает только Readline 8 - PullRequest
0 голосов
/ 25 февраля 2019

После обновления до MacOS Mojave я перестроил свою среду разработки Python, используя Homebrew и Pyenv.

  • Я впервые обновил XCODE и мои заголовки SDK (https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes#3035624).

    sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
    
  • Используя homebrew, я установил Pyenv, Readline и XZ.

    $ brew update
    $ brew install pyenv readline xz
    
  • Затем с помощью Pyenv я установил различные пакеты Python:

    $ pyenv install 3.5.0
    $ pyenv install 2.7.10
    
  • Установщик Pyenv сообщил мне, что он использует Homebrewreadline.

    Installing Python-3.5.0...
    python-build: use readline from homebrew
    
  • Когда я пытаюсь запустить программу на Python, я получаю сообщение об ошибке:

    ImportError: dlopen(/Users/me/.pyenv/versions/3.5.0/lib/python3.5/lib-dynload/readline.cpython-35m-darwin.so, 
    2): Library not loaded: /usr/local/opt/readline/lib/libreadline.7.dylib
    Referenced from: /Users/me/.pyenv/versions/3.5.0/lib/python3.5/lib-dynload/readline.cpython-35m-darwin.so
    Reason: image not found
    
  • Поиск в / usr /local / opt / readline / lib все, что я вижу, это библиотеки версии 8.

    $ ls /usr/local/opt/readline/lib
    libhistory.8.0.dylib    libhistory.a        libreadline.8.0.dylib   libreadline.a       pkgconfig
    libhistory.8.dylib  libhistory.dylib    libreadline.8.dylib libreadline.dylib
    

На данный момент я не знаю, должен ли я: A) выяснить, как установить readlinev.7 через homebrew или B) каким-то образом обновите pyenv, чтобы не использовать readline homebrew, но установите саму библиотеку, или C) что-то еще.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 07 марта 2019

Эта проблема, кажется, решена в Python 3.7.2 , если вы можете выполнить обновление.Я столкнулся с одной и той же проблемой как с Python 3.6.7, так и с 3.7.1, и мне так и не удалось выполнить откат до readline v.7 с помощью homebrew, который по каким-то причинам не поддерживал предыдущие версии в качестве нажатий..

...