__ init__.py的简单情况,导入后找不到神秘的模块

问题描述 投票:0回答:1

我从很多不同的角度尝试过,但无法解决。一定是这么简单的情况。在Python 3.7.6中:

目录结构:

./modtest/
./modtest/__init__.py
./modtest/test1.py
./modtest/test2.py

test1.py:

import modtest
def x(i):
   print(i)
   y(i)    

test2.py:

def y(i):
   print(i)

__init__.py是一个空文件。

当我尝试运行代码时:

$ /Users/pitosalas/miniconda3/bin/python /Users/pitosalas/mydev/rsb_py/modtest/test1.py
Traceback (most recent call last):
  File "/Users/pitosalas/mydev/rsb_py/modtest/test1.py", line 1, in <module>
    import modtest
ModuleNotFoundError: No module named 'modtest

根据我的读物,这应该有效。我敢肯定有一些小问题!

python python-3.x python-import
1个回答
0
投票

此模块本身位于modtest内部时,您正在test1.py中导入modtest。这不可能是因为尚未定义modest并将其添加到搜索路径中。所以这实际上是您应该拥有的:

./modtest/
./modtest/__init__.py
./modtest/
./modtest/test2.py
./test1.py  # this module must be outside of modtest
© www.soinside.com 2019 - 2024. All rights reserved.