__init__.py 的简单案例和导入给出未找到的神秘模块
Simple case of __init__.py and import giving mysterious module not found
我从很多不同的角度尝试过这个,但无法解决。一定是这么简单的案例。在 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
根据我的阅读,这应该有效。我确定有一些微不足道的错误!
您正在 test1.py
中导入 modtest
,而此模块本身位于 modtest
中。这不可能是因为 modest
尚未定义并添加到搜索路径。所以这就是你实际上应该拥有的:
./modtest/
./modtest/__init__.py
./modtest/
./modtest/test2.py
./test1.py # this module must be outside of modtest
我从很多不同的角度尝试过这个,但无法解决。一定是这么简单的案例。在 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
根据我的阅读,这应该有效。我确定有一些微不足道的错误!
您正在 test1.py
中导入 modtest
,而此模块本身位于 modtest
中。这不可能是因为 modest
尚未定义并添加到搜索路径。所以这就是你实际上应该拥有的:
./modtest/
./modtest/__init__.py
./modtest/
./modtest/test2.py
./test1.py # this module must be outside of modtest