Estoy trabajando en un paquete en Python. Yo uso virtualenv. Establezco la ruta a la raíz del módulo en una ruta .pth en mi virtualenv, de modo que puedo importar módulos del paquete mientras desarrollo el código y hago las pruebas (Pregunta 1: ¿es una buena manera de hacerlo?). Esto funciona bien (aquí hay un ejemplo, este es el comportamiento que quiero):
(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
Sin embargo, si intento usar PyTest, recibo algunos mensajes de error de importación:
(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
Estoy un poco desconcertado, parece que esto indica un error de importación, pero Python lo hace bien, entonces, ¿por qué hay un problema específicamente con PyTest? ¿Alguna sugerencia sobre la razón / solución (pregunta 2)? Busqué en Google y desbordé la pila del error 'ImportError: no se puede importar' para PyTest, pero los resultados que obtuve estaban relacionados con la ruta de Python faltante y la solución a esto, que no parece ser el problema aquí. ¿Alguna sugerencia?