Процесс Python/pip убит в virtualenv (чип Apple M1)

Когда я запускаю pip или python в виртуальном чипе MacBook M1, процесс всегда немедленно завершается с сообщением:
[1] 29116 killed pip и [1] 29141 killed python.

Совершенно нормально использовать python и pip в родной среде M1 MacBook. Однако, если я хочу использовать virtualenv для изоляции среды разработки, это не сработает.


person Sean Cheng    schedule 29.03.2021    source источник


Ответы (1)


После некоторых исследований я обнаружил, что это связано с архитектурой x86_64 и arm 64. Чтобы решить проблему, вам нужно запустить virtualenv python/pip в режиме x86_64.

Шаги:

  1. Отключить SIP: перезагрузите MacBook в режиме восстановления. Откройте Utilities > Terminal введите csrutil disable. ссылка: отключение и включение защиты целостности системы
  2. Запустите SHELL в режиме x86_64: введите arch -x86_64 $SHELL в Терминале.
  3. Выполнить python/pip успешно

После этого я снова включаю SIP и продолжаю каждый раз использовать arch -x86_64 $SHELL. Он успешно выполнит python/pip в virtualenv.

Чтобы сэкономить время, я добавляю псевдоним в свой .zshrc:

псевдоним x86=arch -x86_64 $SHELL

Теперь, если мне нужно выполнить какой-то процесс в режиме x86_64, я просто набираю x86, чтобы открыть оболочку x86_64.

Примечание. MxJ24 на github предоставляет это решение и перечисляет некоторые полезные сценарии для python/django/brew: gist.github.com/MxJ24/e1386c9012f533cfbedfed5114da3e60

person Sean Cheng    schedule 29.03.2021