Ошибка «Библиотека не загружена» после обновления Python с помощью Homebrew - PullRequest
2 голосов
/ 29 апреля 2019

Я использую pipenv для создания virtualenv, подобного этому

pipenv --python /usr/local/bin/python3

После обновления python с помощью Homebrew, например с python 3.7.2 до 3.7.3, активного virtualenv с помощью pipenv shell и выполнения любых действий с python будетошибка, подобная этой

python3 --version
dyld: Library not loaded: @executable_path/../.Python
  Referenced from: /Users/xxx/.local/share/virtualenvs/xxx-xxx/bin/python3
  Reason: image not found
[1]    60198 abort      python3 --version

Все, что я знаю об этом, это /usr/local/bin/python3 все еще там, хорошо запустить python на системном уровне.Только вызывать python в virtualenv будет неправильно.

Пока я удалил virtualenvs и снова создал его с помощью pipenv, это исправит это.Но могут ли эти вещи потерять все пип-пакеты, поэтому мне нужно переустановить их снова.

Итак, есть ли какой-нибудь умный способ решить эту проблему?Или что происходит во время обновления Python для Homebrew?

Может быть, этот вопрос выглядит глупо.Но я уже давно запутался.

Заранее спасибо.

1 Ответ

0 голосов
/ 21 июня 2019

У меня была такая же проблема.Отсутствует библиотека .Python, которая является ссылкой на верхнем уровне виртуальной среды (в вашем случае /Users/xxx/.local/share/virtualenvs/xxx-xxx).Если вы зайдете туда и выполните ls -l .Python, вы увидите, что он указывает на конкретный каталог домашних пивоваров (в моем случае /usr/local/Cellar/python/3.7.2_2/Frameworks/Python.framework/Versions/3.7/Python).Этот каталог, вероятно, был удален обновлением (выполните ls -l /usr/local/Cellar/python, чтобы узнать новый каталог / версию.

Удалите ссылку и дайте ей указать новое местоположение, например, для меня: ln -s /usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/Python .Python

...