我制作了我的python模块,它<code>A。py使用B。py
如下所示。在这种情况下,如何导入<code>B。py在A中。py
?我想使用其他目录中的mylib
模块。但由于路径问题,我的代码无法工作。
├── main.py
└── mylib
├── A.py
├── B.py
├── __init__.py
└── main_in_mylib.py
A.py
import B
def test():
B.hello()
碧桂园
def hello():
print("hello from B")
main _ in _ mylib.py
import A
A.test()
主.py
import mylib.A as A
A.test()
Traceback (most recent call last):
File "main.py", line 3, in <module>
import mylib.A as A
File "/home/jef/python-module/mylib/A.py", line 3, in <module>
import B
ModuleNotFoundError: No module named 'B'
ModuleNotFoundError:没有名为“B”的模块
# main.py
from mylib.A import test
test()
ModuleNotFoundError:没有名为“B”的模块
# main.py
import mylib.B as B
import mylib.A as A
A.test()
问题是您导入了一个文件并尝试使用点表示法调用方法。
使用mylib. A导入测试中的
现在你可以直接在 main.py 中使用
test()
在python3中,您甚至不必编写
_init__。在目录中复制
,以表明它是一个包(这是一个很好的做法)
为了便于记录,也可以在< code>A.py中进行相对导入:
from . import B
您需要将 A 更改为
import mylib.B as B
def test():
B.hello()
而不是
import B
def test():
B.hello()
因为导入始终相对于您调用的脚本(在本例中为 main.py)
问题内容: 我在一个项目中有一些代码,想在另一个项目中重用。我需要做什么(在两个文件夹中)才能执行此操作? 目录结构类似于: oo 项目1 file1.py file2.py 酒吧 项目2 fileX.py fileY.py 我想使用fileX.py和fileY.py中的file1.py和file2.py中的函数。 问题答案: 理想情况下,两个项目都是可安装的python程序包,并充满__init
问题内容: 我有一个存储所有.py文件的目录。 我想从使用类user.py和dir.py在main.py。 如何将这些Python类导入main.py? 此外,如果user.py在子目录中,如何导入类? 问题答案: Python 2 在与文件相同的目录中创建一个名为的空文件。这将向Python表示“可以从此目录导入”。 然后做… 如果文件位于子目录中,则也应如此-将子目录也放入子目录中,然后使用带
问题内容: 目录结构: module1.py: 我如何才能将所有模块从模块添加到主类而没有前缀(即像foo = fooBar()一样使用它们,而不是foo = my_modules.module1.fooBar())。 一个明显的决定是在main.py中编写如下内容: 但是我不想在创建新的moduleN时更改main.py。有解决方案吗? 我确实知道导入这样的类不是一个好主意,但是我对此仍然很好奇
问题内容: 我有一个使用内置模块的Python脚本,但也导入了与主脚本本身位于同一目录中的许多自定义模块。 例如,我会打电话 和agent.py具有许多导入,包括: 其中checks与agent.py位于同一目录中的文件 当前工作目录为agent /时,一切都很好。但是,如果我从任何其他目录调用agent.py,则显然无法导入checks.py等错误。 我如何确保可以导入自定义模块,而不管从哪里调
本文向大家介绍Python在不同目录下导入模块的实现方法,包括了Python在不同目录下导入模块的实现方法的使用技巧和注意事项,需要的朋友参考一下 python在不同层级目录import模块的方法 使用python进行程序编写时,经常会调用不同目录下的模块及函数。本篇博客针对常见的模块调用讲解导入模块的方法。 1. 同级目录下的调用 目录结构如下: 若在程序test1.py中导入模块mod1, 则