作者:菜鸟自学编程 | 来源:互联网 | 2022-12-02 12:17
我无法从pytest函数导入模块。我知道有100万个问题,但是我已经读了一堆,但仍然难以理解。
$ tree
.
??? code
??? eight_puzzle.py
??? missionaries_and_cannibals.py
??? node.py
??? search.py
??? test
??? test_eight_puzzle.py
??? test_search.py
2 directories, 6 files
$
$ grep import code/test/test_search.py
import sys
import pytest
import code.search
$
$ pytest
...
ImportError while importing test module '~/Documents/code/test/test_search.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
code/test/test_search.py:14: in
import code.search
E ModuleNotFoundError: No module named 'code.search'; 'code' is not a package
...
我希望那能奏效。“代码”是一个包,对吗?Python 3中的软件包是其中包含.py文件的任何目录。
我也尝试了相对导入-- from .. import search
我得到以下信息。
ImportError while importing test module '~/Documents/code/test/test_search.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
code/test/test_search.py:14: in
from .. import search
E ImportError: attempted relative import with no known parent package
我也尝试修改的sys.path如图所示这里,我指定PYTHONPATH,并添加初始化代码和测试.py文件。
我可以在不使用setuptools之类的情况下使导入工作吗?这只是为了进行实验,因此我宁愿不处理开销。
可能还需要注意的是我正在使用conda,因为当我将python 2 pip安装的pytest与init .py文件一起使用时,它似乎可以正常工作。