2009-05-14 13 views
43

में नाक का उपयोग करने में समस्याएं मैं वर्चुअलनव प्रोजेक्ट में नाक (नोसेटेट्स) का उपयोग करने में असमर्थ हूं - यह वर्चुअलएन्व वातावरण में स्थापित संकुल को प्रतीत नहीं कर सकता है।वर्चुअलनव

अजीब बात मैं

test_suite = 'nose.collector' 
setup.py में

सेट कर सकते हैं कि और परीक्षण

python setup.py test 

के रूप में ठीक से चलाने, लेकिन जब nosetests सीधे चल रहा है, वहाँ आयात संबंधी त्रुटियों के सभी प्रकार के कर रहे हैं ।

मैंने नाक की एक प्रणाली-व्यापी स्थापना और वर्चुअलनव नाक पैकेज और कोई किस्मत दोनों के साथ कोशिश की है।

कोई विचार?

धन्यवाद !!

+0

संबंधित नोट पर, नाक एक अलग कंप्यूटर पर "बॉक्स से बाहर" ठीक काम करता है ... इसलिए सिस्टम के साथ कुछ गड़बड़ है समस्याएं हैं – Ryan

उत्तर

42

क्या आप myenv/bin/python /usr/bin/nosetests चलाने में सक्षम हैं? वर्चुअल पर्यावरण के लाइब्रेरी सेट का उपयोग करके नाक को चलाना चाहिए।

+0

हां वास्तव में। यह काम करता है। धन्यवाद! – Ryan

+3

स्क्रिप्ट है कि अन्य डेवलपर्स का उपयोग करेगा के साथ प्रयोग कर रहे हैं, तो आप 'अजगर \' जो nosetests कर सकते हैं \ '' – bcoughlan

+2

इस उर्फ ​​nosetests = '/ usr/bin/env अजगर $ (जो nosetests)' – Necrolyte2

8

यहाँ क्या मेरे लिए काम करता है:

$ virtualenv --no-site-packages env1 
$ cd env1 
$ source bin/activate   # makes "env1" environment active, 
           # you will notice that the command prompt 
           # now has the environment name in it. 

(env1)$ easy_install nose  # install nose package into "env1" 

मैं एक बहुत बुनियादी पैकेज slither कि था, इसके setup.py में, एक ही test_suite विशेषता बना के रूप में आप ऊपर उल्लेख किया है। फिर मैंने पैकेज स्रोत को env1/src के तहत रखा।

आप env1/src अंदर देखा, तो आप देखना चाहते हैं:

slither/setup.py 
slither/slither/__init__.py 
slither/slither/impl.py   # has some very silly code to be tested 
slither/slither/tests.py   # has test-cases 

मैं परीक्षण test subcommand का उपयोग कर चला सकते हैं:

(env1)$ pushd src/slither 
(env1)$ python setup.py test 
# ... output elided ... 
test_ctor (slither.tests.SnakeTests) ... ok 
test_division_by_zero (slither.tests.SnakeTests) ... ok 
Ran 2 tests in 0.009s 
OK 
(env1)$ popd 

या, मैं nosetests के साथ एक ही परीक्षण चला सकते हैं:

(env1)$ pushd src 
(env1)$ nosetests slither/ 
.. 
Ran 2 tests in 0.007s 
OK 
(env1)$ popd 

यह भी ध्यान दें कि nosetests सी निष्पादन योग्य के बारे में एक picky हो। यदि आप इसे पाइथन मॉड्यूल में परीक्षणों को खोजना चाहते हैं तो आप --exe पास कर सकते हैं।

9

मुझे एक ही समस्या मिली। निम्नलिखित तरीके को मदद की:

python `which nosetests` 

(सिर्फ nosestests के बजाय)

+0

वह मेरे लिए काम किया की कोशिश करो। धन्यवाद। – ashic

58

आप वर्चुअल वातावरण में स्थापित नाक की एक प्रति की आवश्यकता है।

(env1)$ pip install nose -I 
तब से तुम पर

सिर्फ nosetests हमेशा की तरह चला सकते हैं: आदेश -I ध्वज के साथ, virtualenv में नाक की स्थापना के लिए मजबूर करने की है, भले ही यह पहले से ही वैश्विक साइट-संकुल में स्थापित किया गया है चलाने pip install में।

+12

ऐसा लगता है कि किसी को वर्चुअलएन्फ़ को रीफ्रेश करना पड़ सकता है। अर्थात्, 'जो nosetests' वर्चुअलenv के अंदर एक निष्पादन योग्य को इंगित करना चाहिए। –

+17

+1 यह मेरे लिए काम किया है। साथ ही, जैसा कि सीज़र बताता है, मुझे 'निष्क्रिय' चलाने और फिर पुनः सक्रिय करने के द्वारा वर्चुअलएन्व को रीफ्रेश करना पड़ा। – Tom

+2

यह स्वीकार्य उत्तर होना चाहिए !!! – ducin

0

शायद यह एक हालिया परिवर्तन है, लेकिन मेरे लिए, जब मैंने पाइप के माध्यम से नोसेटेट स्थापित किया था, तो .virtualenvs/<env>/bin में निष्पादन योग्य स्थापित किया गया था, जो (असुरक्षित रूप से) वर्चुअलएन्व के साथ सही ढंग से संचालित होता है।

0

आपके पास nosetests हो सकता है जो आपके PATH में कहीं और स्थापित है जो आपके वर्चुअलएन्व में स्थापित एक से अधिक प्राथमिकता के साथ है।

export PATH=/path/to/current/virtualenv/bin:$PATH 
7

एक ही स्थिति में मैं पथ के लिए virtualenv को फिर से लोड करने के लिए आवश्यक सही ढंग से अद्यतन किया जाना: एक त्वरित तरीका nose मॉड्यूल और संबंधित nosetests स्क्रिप्ट अपने वर्तमान virtualenv सर्वोच्च प्राथमिकता में स्थापित देने के लिए अपने PATH संपादित करने के लिए है:

deactivate 
env/bin/activate 
+0

यह वह है जो मेरे लिए किया था। कोई विचार नहीं है कि आपको नाक (या नाक 2, मेरे मामले में) स्थापित करने के बाद फिर से सक्रिय करने की आवश्यकता क्यों है? – hansmosh

+0

@ हंसमोश, अभी परीक्षण नहीं कर सकता है, यह सभी पथों की जांच करना उपयोगी होगा –

1

यदि सब और विफल रहता है, अपने venv में नाक स्थापित करने की कोशिश, और/या nosetests-2.7 चलाते हैं। मेरा मानना ​​है कि @ एंड्रिया-जोन्का का जवाब वही प्रभाव डालता है यदि आपका venv पायथन 2.7

संबंधित मुद्दे