मैं पायथन में एक पैकेज पर काम कर रहा हूं। मैं virtualenv का उपयोग करें। मैंने अपने virtualenv में .pth पथ में मॉड्यूल की जड़ तक पथ सेट किया है, ताकि मैं कोड विकसित करते समय पैकेज के मॉड्यूल को आयात कर सकूं और परीक्षण कर सकूं (प्रश्न 1: क्या यह एक अच्छा तरीका है?)। यह ठीक काम करता है (यहां एक उदाहरण है, यह वह व्यवहार है जो मैं चाहता हूं):
(VEnvTestRc) zz@zz:~/Desktop/GitFolders/rc$ python
Python 2.7.12 (default, Jul 1 2016, 15:12:24)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from rc import ns
>>> exit()
(VEnvTestRc) zz@zz:~/Desktop/GitFolders/rc$ python tests/test_ns.py
issued command: echo hello
command output: hello
हालाँकि, अगर मैं PyTest का उपयोग करने की कोशिश करता हूं, तो मुझे कुछ आयात त्रुटि संदेश मिलते हैं:
(VEnvTestRc) zz@zz:~/Desktop/GitFolders/rc$ pytest
=========================================== test session starts ============================================
platform linux2 -- Python 2.7.12, pytest-3.0.5, py-1.4.31, pluggy-0.4.0
rootdir: /home/zz/Desktop/GitFolders/rc, inifile:
collected 0 items / 1 errors
================================================== ERRORS ==================================================
________________________________ ERROR collecting tests/test_ns.py ________________________________
ImportError while importing test module '/home/zz/Desktop/GitFolders/rc/tests/test_ns.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
tests/test_ns.py:2: in <module>
from rc import ns
E ImportError: cannot import name ns
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 errors during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
========================================= 1 error in 0.09 seconds ==========================================
(VEnvTestRc) zz@zz:~/Desktop/GitFolders/rc$ which pytest
/home/zz/Desktop/VirtualEnvs/VEnvTestRc/bin/pytest
मैं थोड़ा हैरान हूँ, ऐसा लग रहा है कि यह एक आयात त्रुटि को इंगित करता है, लेकिन पायथन इसे ठीक करता है इसलिए विशेष रूप से PyTest के साथ कोई समस्या क्यों है? कारण / उपाय (प्रश्न 2) के लिए कोई सुझाव? मैंने गुगली की और स्टैक-ओवरफ्लो किया 'इम्पोर्ट्योर: इम्पोर्ट नहीं कर सकता', प्यारेस्ट के लिए त्रुटि, लेकिन मुझे जो हिट मिली वह मिसिंग पायथन पथ और इस से संबंधित उपाय था, जो यहाँ समस्या नहीं लगती है। कोई सुझाव?