2015-11-17 11 views
5

Birkaç ay boyunca Python 2.7.10'u virtualenv ortamında kullanıyorum. böylece,Python'u OS X ile sanalenv ile başlatmaya çalışırken "Yasadışı talimat: 4"

Illegal instruction: 4

benim ortamında hiçbir değişiklik (AFAIK) yaptık:

Dün çevreyi aktive iyi gitti, ama birdenbire bugün Terminalinden Python başlatmaya çalışırken bu şifreli hata alıyorum Bu hatanın ne olduğunu ve neye sebep olduğunu anlamaya çalışmak için zor bir zaman geçiriyorum.

Python, bu virtualenv ortamının dışında iyi çalışır. /usr/local/bin ile çalışırken sorun yaratmaz.

+0

Cevabı bilmiyorum, ancak bir Sandboxed OSX uygulamasında bir yürütülebilir dosyayı bir araya getirip komut satırından doğrudan çalıştırmayı denediyseniz elde edeceğiniz aynı çökme budur. – trojanfoe

+0

Benzer soru, bir çözüm önerilmektedir: https://stackoverflow.com/q/48710094/5802289 – J0ANMM

cevap

1

Bu problemi şimdi birkaç kez yaşadım. Asıl sorunun ne olduğunu kesin olarak söyleyemem, temelde Python'un virtualenv taksitindeki bazı dosyaların bozulduğuna inanıyorum.

Sanal ortamımı senkronize Edilmiş bir Dropbox klasöründe saklıyorum, bu nedenle bu sorun için büyük bir katkıda bulunabilir.

Sanal ortamın yedek bir arşivden geri yüklenmesi benim için çalıştı. Ya da sadece aynı sanal ortamı yeniden yükleyin.

  • Birincisi, cd <path/to/old_env> ve source /bin/activate tarafından hatalı bir ortam aktive deneyin.
  • Sürücü başarıyla erişilebilen bir konumda cd etkinleştirilmişse ve o anda yüklü olan Python modüllerinin listesini vermek için pip freeze > requirements.txt'u çalıştırın.
  • Eski ortamı silin. Belirli bir Python sürümünü kullanmak istiyorsanız
  • Eğer sürücüde buna sahip bulunduğundan emin olun öncelikle, virtualenv <path/new_env>
  • aracılığıyla, Python, bilgisayarda sahip 2'nin son sürümü yeni bir sanal ortam yükleyin Ya ve sonra virtualenv -p <path> yapın. Python sürümünü Homebrew ile indirdiğinizi varsayarak, örneğin: virtualenv -p /usr/local/bin/python2.6 <path/new_env>
  • Sanal ortamı cd <path/new_env> üzerinden etkinleştirin ve source /bin/activate yapın.
  • Metin dosyasının bulunduğu klasöre daha önce pip freeze > requirements.txt, cd yapıyor ve yapıyor, yeniden yüklemek için bir modül listesi tuttuğunu varsayarsak.
  • Aksi takdirde, modülleri pip el ile yeniden yükleyin.