2014-07-26 31 views
7

PyCharm'da (2.7.3), 2 ve 3 numaralı python ile burun izini kullanmaya çalışıyorum.Python 2 ve 3'e sahip PyCharm'da nosetests kullanma yan yana kuruldu

Her şey piton 2.7 altında çalışıyor, ancak python 3.4 herhangi bir test aşağıdaki hata nedeniyle başarısız:

: diyor piton 3 tercüman nosetest vadede çalıştırma yapılandırmasında Üstelik

Traceback (most recent call last): 
    File "/home/robert/Programme/pycharm-2.7.3/helpers/pycharm/noserunner.py", line 91, in <module> 
    process_args() 
    File "/home/robert/Programme/pycharm-2.7.3/helpers/pycharm/noserunner.py", line 88, in process_args 
    TestProgram(argv=argv, config=config) 
    File "/usr/local/lib/python3.4/dist-packages/nose/core.py", line 121, in __init__ 
    **extra_args) 
    File "/usr/lib/python3.4/unittest/main.py", line 93, in __init__ 
    self.runTests() 
    File "/usr/local/lib/python3.4/dist-packages/nose/core.py", line 207, in runTests 
    result = self.testRunner.run(self.test) 
    File "/usr/local/lib/python3.4/dist-packages/nose/core.py", line 62, in run 
    test(result) 
    File "/usr/local/lib/python3.4/dist-packages/nose/suite.py", line 177, in __call__ 
    return self.run(*arg, **kw) 
    File "/usr/local/lib/python3.4/dist-packages/nose/suite.py", line 224, in run 
    test(orig) 
    File "/usr/local/lib/python3.4/dist-packages/nose/suite.py", line 177, in __call__ 
    return self.run(*arg, **kw) 
    File "/usr/local/lib/python3.4/dist-packages/nose/suite.py", line 224, in run 
    test(orig) 
    File "/usr/local/lib/python3.4/dist-packages/nose/case.py", line 46, in __call__ 
    return self.run(*arg, **kwarg) 
    File "/usr/local/lib/python3.4/dist-packages/nose/case.py", line 139, in run 
    result.addError(self, err) 
    File "/usr/local/lib/python3.4/dist-packages/nose/proxy.py", line 131, in addError 
    plugins.addError(self.test, err) 
    File "/usr/local/lib/python3.4/dist-packages/nose/plugins/manager.py", line 99, in __call__ 
    return self.call(*arg, **kw) 
    File "/usr/local/lib/python3.4/dist-packages/nose/plugins/manager.py", line 167, in simple 
    result = meth(*arg, **kw) 
    File "/home/robert/Programme/pycharm-2.7.3/helpers/pycharm/nose_utils.py", line 51, in addError 
    err = self.formatErr(err) 
    File "/home/robert/Programme/pycharm-2.7.3/helpers/pycharm/nose_utils.py", line 58, in formatErr 
    return ''.join(traceback.format_exception(exctype, value, tb)) 
    File "/usr/lib/python3.4/traceback.py", line 181, in format_exception 
    return list(_format_exception_iter(etype, value, tb, limit, chain)) 
    File "/usr/lib/python3.4/traceback.py", line 146, in _format_exception_iter 
    for value, tb in values: 
    File "/usr/lib/python3.4/traceback.py", line 125, in _iter_chain 
    context = exc.__context__ 
AttributeError: 'str' object has no attribute '__context__' 

WARNING: No nosetest runner found in selected interpreter 

Bunu düzeltmek için ne yapmam gerekiyor? PyCharm'da (2.7.3) python 3 notaları için uygun bir koşucu nasıl seçerim? Teşekkürler!

DÜZENLEME: Btw, pycharm 2.7.3

+1

hatası (traceback uzağa gidiyor mu .format_exception (exctype, value, tb)) - "return" '.join (traceback.format_exception (exctype, değer, tb, zincir = False))/in /home/robert/Programme/pycharm-2.7.3/ yardımcılar/pycharm/nose_utils.py', çizgi 58? – dano

+0

Evet, teşekkürler, işe yaradı. Bunu bir yorum yerine gerçek bir cevap olarak göndermek istiyor musunuz, bu yüzden cevap olarak işaretleyebilirim? – SmCaterpillar

+0

Hmm problem şu an Artık bir traceback yok. Yani hata ayıklama bir kabus haline geldi, bir geçici çözüm var mı? – SmCaterpillar

cevap

7

Tamam var, burada geçici çözümü göndermek için daha kolay diğerlerine bulmasını sağlamak için.

if sys.version_info[0]==3: 
    return ''.join(traceback.format_exception(exctype, value, tb, chain=False)) 
else: 
    return ''.join(traceback.format_exception(exctype, value, tb)) 

ile PathToPyCharm/pycharm-2.7.3/helpers/pycharm/nose_utils.py satırı 58 Değiştirme piton 3.4 ve 2.7'ye ile nosetests çalışmalarını yaptı. Yine de, python 3.4 kullanarak bir hata oluşması durumunda tüm yığın izi kaybolur. Sonuç olarak, hata ayıklama bir kabus :(Son olarak

, ben 3.4.1 benim pycharm versiyonunu yükselterek sadece sorunu çözüldü olur. Eğer '' `.join dönüşünü değiştirirseniz

+0

Bu geçici çözüm, pycharm 4.0.3 ve python 3.4.2 ile hala geçerlidir. – lekksi

+1

Pycharm 4.5'de bu hala bir problem ama şimdi değiştirmeniz gereken 70. satır. –

+0

Hala 4.5.4 üzerinde hala bir sorun, hala hat 70 çalışır. – OldTinfoil