我为这个错误找到了其他stackoverflow问题和答案,但没有一个对我有效。我的python包问题:
我试着用这些命令安装软件包,这样我就可以运行测试:
$ pip3 install virtualenv
$ virtualenv -p $(which python3.9) venv
$ source venv/bin/activate
$ pip install --upgrade pip # stop local environments from messing things up
$ pip install -r path/to/requirements.txt
我试着运行我的测试:
$ python -m unittest discover
我得到了这个错误:
======================================================================
ERROR: some_file (unittest.loader._FailedTest)
----------------------------------------------------------------------
ImportError: Failed to import test module: some_file
Traceback (most recent call last):
File "/usr/local/opt/python@3.8/Frameworks/Python.framework/Versions/3.8/lib/python3.8/unittest/loader.py", line 436, in _find_test_path
module = self._get_module_from_name(name)
File "/usr/local/opt/python@3.8/Frameworks/Python.framework/Versions/3.8/lib/python3.8/unittest/loader.py", line 377, in _get_module_from_name
__import__(name)
File "/Users/path/some_file.py", line 3, in <module>
from .other_file import some_function, SomeClass
ImportError: attempted relative import with no known parent package
----------------------------------------------------------------------
正如错误所说,我试图在我的文件中使用一个相对路径:
from .other_file import some_function, SomeClass
我不知道python的其他版本,但我预计这在python3中是可能的。
我需要将此行添加到我的安装命令中:
$ pip install --editable .
即:
$ pip3 install virtualenv
$ virtualenv -p $(which python3.9) venv
$ source venv/bin/activate
$ pip install --upgrade pip # stop local environments from messing things up
$ pip install -r path/to/requirements.txt
$ pip install --editable .
我还不明白为什么它有效。如果我发现更多,我会更新这个答案。