复制步骤:
# tree:
.
├── demo1
│ ├── __init__.py
│ └── test.py
├── __init__.py
├── auto.py
# auto.py
def func():
print("1")
# test.py
from auto import func
func()
使用示例来解决项目中出现的问题,运行test.py文件,我得到了"ModuleNotFoundError:没有名为‘func’的模块“,我在test.py中使用了'CTRL '+鼠标左键跳转到func--相同的代码可以在pycharm中运行。
发布于 2020-01-03 08:30:24
如果直接运行test.py,则需要将父文件夹添加到PYTHONPATH。尝试:
import sys
sys.path.append("..\<parent_folder>")
from auto import func
否则,如果您只想在另一个test.py文件中导入.py,则可以使用python的相对导入。
from . import auto #another dot '.' to go up two packages
auto.func()
发布于 2020-01-03 08:35:34
在导入之前,在test.py中添加以下内容:
import sys
sys.path.insert(0, "/path/to/project/root/directory")
对我来说,这不是一个好的文件组织。更好的做法如下:
让您的项目文件树类似:
.
├── __init__.py
├── lib
│ ├── auto.py
│ └── __init__.py
└── test.py
并编写如下test.py:
from lib.auto import func
func()
发布于 2020-01-03 08:32:47
简单单行解
from ... import auto
并使用auto.func()
调用该函数。
https://stackoverflow.com/questions/59575018
复制相似问题