Python不将我的包视为包
我有以下文件夹结构:Python不将我的包视为包,python,Python,我有以下文件夹结构: mypkg/ __init__.py program.py utils.py utils.py包含以下内容: def foo(): print('this is foo from utils.py') from mypkg import utils utils.foo() program.py包含以下内容: def foo(): print('this is foo from utils.py') from mypkg import ut
mypkg/
__init__.py
program.py
utils.py
utils.py
包含以下内容:
def foo():
print('this is foo from utils.py')
from mypkg import utils
utils.foo()
program.py
包含以下内容:
def foo():
print('this is foo from utils.py')
from mypkg import utils
utils.foo()
\uuuu init\uuuu.py
为空
我得到的错误是:
Traceback (most recent call last):
File "program.py", line 1, in <module>
from mypkg import utils
ModuleNotFoundError: No module named 'mypkg'
回溯(最近一次呼叫最后一次):
文件“program.py”,第1行,在
从mypkg导入utils
ModuleNotFoundError:没有名为“mypkg”的模块
如果我用import utils替换第一行,它就可以正常工作。问题是,为什么它不能与mypkg导入utils的一起工作?我错过了什么
Python版本:3.8.5
在Linux服务器上运行。
另外,当我在Windows上执行相同操作时,我没有看到该错误。可能是因为mypkg
不在您的路径中。如果导入utils
有效,我假设您的工作目录位于mypkg
目录中。是否需要手动将每个包添加到路径中?有更简单的方法吗@juanpa.arrivillaga您可以将cd放入父目录。但是您知道,当您“安装”一个包时,基本上归结为将该包添加到您的路径中。因为如果您正在从mypkg/
运行脚本,则目录中没有mypkg
。错误是当前目录中没有名为mypkg
的模块。从中尝试。导入utils
并使用python-m program.py作为模块运行
您的意思是PYTHONPATH
,而不是PATH
。