File "test/test_plc.py", line 5, in TestPLC from ..scripts.modules.tcp import ftpServer ImportError: attempted relative import with no known parent package
时间: 2023-06-30 20:24:12 浏览: 112
ftp-test.py
这个错误提示说明你尝试使用相对导入,但是Python无法确定相对导入的起点。
相对导入是基于当前模块的位置,而不是当前工作目录。因此,当你在一个没有包结构的脚本中使用相对导入时,Python会无法确定相对导入的起点。
解决这个问题的方法是将脚本转换成包结构,即将脚本所在的目录变成一个包,并在该包中使用相对导入。具体地,你可以按照以下步骤进行操作:
1. 在脚本所在的目录上一级目录下创建一个名为`__init__.py`的空文件,这个文件是包的标识文件,必须存在。
2. 将脚本文件移动到该目录下,并将脚本文件名改为`__main__.py`,这是Python解释器默认执行的脚本文件名。
3. 在`__main__.py`中使用相对导入,例如:
```python
from .scripts.modules.tcp import ftpServer
```
这里的`.`表示当前包,也就是`__main__.py`所在的包。
4. 在该目录下执行命令`python -m <包名>`,即可运行你的脚本。
注意,这里的`<包名>`指的是你创建的包的名称,即包含`__main__.py`和`__init__.py`的目录名。
希望这个解答对你有帮助,如果你还有其他问题,可以继续问我。
阅读全文