2015-11-17 11 views
5

Używam Pythona 2.7.10 w środowisku virtualenv przez kilka miesięcy."Nielegalna instrukcja: 4" podczas próby uruchomienia Pythona z virtualenv w OS X

Wczoraj aktywacji środowiska poszło dobrze, ale dzisiaj suddently otrzymuję ten tajemniczy błąd, gdy próbuje uruchomić Pythona z Terminalu:

Illegal instruction: 4

zrobiłem żadnych zmian w moim otoczeniu (AFAIK), tak Mam trudny czas, próbując pogodzić się z tym, czym jest ten błąd i co go spowodowało.

Python działa dobrze poza tym środowiskiem virtualenv. Podczas uruchamiania przez /usr/local/bin nie stanowi to problemu.

+0

Nie znam odpowiedzi, ale jest to ta sama awaria, którą można uzyskać, jeśli dołączysz plik wykonywalny w aplikacji Sandboxed OSX i spróbujesz uruchomić plik wykonywalny bezpośrednio z wiersza poleceń ... – trojanfoe

+0

W tym nowszym podobne pytanie, sugerowane rozwiązanie: https://stackoverflow.com/q/48710094/5802289 – J0ANMM

Odpowiedz

1

Mam już ten problem wiele razy. Chociaż nie mogę powiedzieć na pewno, co jest faktycznym problemem, uważam, że zasadniczo oznacza to, że niektóre pliki w wersji Python virtualenv zostały uszkodzone.

Przechowuję swoje środowisko wirtualne w zsynchronizowanym folderze Dropbox, więc może to być duży wkład do problemu.

Naprawiono wirtualne środowisko z archiwum zapasowego. Lub po prostu ponownie zainstaluj identyczne środowisko wirtualne.

  • Najpierw spróbuj aktywować wadliwe środowisko przez cd <path/to/old_env> i source /bin/activate.
  • Jeśli zostanie pomyślnie aktywowany, cd w dostępnym miejscu na dysku i uruchom pip freeze > requirements.txt, aby wyeksportować listę aktualnie zainstalowanych modułów Pythona.
  • Usunąć stare środowisko.
  • Instalacja nowego wirtualnego środowiska najnowszej wersji Pythona 2, które masz na komputerze, poprzez virtualenv <path/new_env>
  • Albo, jeśli chcesz korzystać z określonej wersji Pythona, najpierw upewnij się, że masz go na dysku , a następnie wykonaj virtualenv -p <path>. Zakładając, że pobrano wersję Pythona z Homebrew, np .: virtualenv -p /usr/local/bin/python2.6 <path/new_env>
  • Aktywuj środowisko wirtualne poprzez cd <path/new_env>, a następnie wykonaj source /bin/activate.
  • Zakładając, że zachowałeś listę modułów do ponownej instalacji, poprzednio wykonując pip freeze > requirements.txt, cd do folderu, w którym znajduje się plik tekstowy i wykonaj pip install -r requirements.txt.
  • W przeciwnym razie ręcznie zainstaluj moduły za pomocą pip.