python python3 مشاكل في استخدام الأنف في virtualenv




virtualenv python3 (7)

في نفس الموقف ، كنت بحاجة لإعادة تحميل virtualenv لمسار ليتم تحديثه بشكل صحيح:

deactivate
env/bin/activate

لا أستطيع استخدام الأنف (nosetests) في مشروع virtualenv - لا يبدو أنه يمكن العثور على الحزم المثبتة في بيئة virtualenv.

الشيء الغريب هو أنه يمكنني ضبط

test_suite = 'nose.collector'

في setup.py وتشغيل الاختبارات على ما يرام

python setup.py test

ولكن عند تشغيل nosetests مباشرة ، هناك كل أنواع أخطاء الاستيراد.

لقد جربته مع كل من تثبيت الأنف على مستوى النظام وحزمة الأنف virtualenv ولا حظ.

أي أفكار؟

شكر!!


ربما كان هذا تغييرًا حديثًا ، لكن بالنسبة لي ، عندما قمت بتثبيت nosetests من خلال النقطة ، كان هناك nosetests قابل للتنفيذ مثبتًا في .virtualenvs/<env>/bin ، والذي (بشكل غير مفاجئ) يعمل بشكل صحيح مع virtualenv.


تحتاج إلى تثبيت نسخة من الأنف في البيئة الافتراضية. من أجل فرض تثبيت الأنف في virtualenv ، على الرغم من أنه مثبت بالفعل في حزم المواقع العالمية ، قم بتشغيل pip install مع علامة -I :

(env1)$ pip install nose -I

من ذلك الحين ، يمكنك فقط تشغيل nosetests كالمعتاد.


هل أنت قادر على تشغيل myenv/bin/python /usr/bin/nosetests ؟ يجب أن يتم تشغيل Nose باستخدام مجموعة مكتبة البيئة الافتراضية.


قد يكون لديك nosetests مثبتة في مكان آخر في PATH مع أولوية أعلى من تلك المثبتة في virtualenv الخاص بك. هناك طريقة سريعة لإعطاء الوحدة النمطية nose nosetests النصية nosetests الصلة nosetests المثبتة في الأولوية العليا للـ virtualenv الحالي الخاص بك وهي تحرير PATH :

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

لدي مشكلة مماثلة. ساعد الحل التالي:

python `which nosetests` 

(بدلا من مجرد nosestests )


إليك ما يصلح لي:

$ 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 لها ، في test_suite ، نفس سمة 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 :

(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 يمكن أن يكون صعب الإرضاء حول الملفات التنفيذية. يمكنك اجتياز - --exe إذا كنت ترغب في اكتشاف اختبارات في وحدات بيثون القابلة للتنفيذ.





nosetests