Tôi đang làm việc trên một gói bằng Python. Tôi sử dụng virtualenv. Tôi đặt đường dẫn đến thư mục gốc của mô-đun theo đường dẫn .pth trong virtualenv của mình, để tôi có thể nhập các mô-đun của gói trong khi phát triển mã và thực hiện kiểm tra (Câu hỏi 1: đó có phải là một cách tốt để làm không?). Điều này hoạt động tốt (đây là một ví dụ, đây là hành vi tôi muốn):
(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
Tuy nhiên, nếu tôi cố gắng sử dụng PyTest, tôi nhận được một số thông báo lỗi nhập:
(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
Tôi hơi khó hiểu, có vẻ như điều này chỉ ra lỗi nhập, nhưng Python làm tốt vậy tại sao lại có vấn đề cụ thể với PyTest? Bất kỳ gợi ý cho lý do / biện pháp khắc phục (Câu hỏi 2)? Tôi đã googled và làm tràn ngăn xếp lỗi 'ImportError: không thể nhập' cho PyTest, nhưng các lần truy cập tôi nhận được liên quan đến việc thiếu đường dẫn python và cách khắc phục lỗi này, điều này có vẻ không phải là vấn đề ở đây. Bất kỳ đề xuất?