Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python中的链接导入产生错误_Python 3.x - Fatal编程技术网

Python 3.x Python中的链接导入产生错误

Python 3.x Python中的链接导入产生错误,python-3.x,Python 3.x,我是Python新手,正在研究Python的特性,在一些应该简单的事情上遇到了问题。我有一个包含main.py和其他一些文件的主目录,还有一个子文件夹,其中包含用于某些特定处理的类。假设我的文件结构如下所示: root/main.py root/more/foo.py root/more/bar.py from bar import bar class Foo(): def __init__(): myBar = bar() if __name__ == '__ma

我是Python新手,正在研究Python的特性,在一些应该简单的事情上遇到了问题。我有一个包含main.py和其他一些文件的主目录,还有一个子文件夹,其中包含用于某些特定处理的类。假设我的文件结构如下所示:

root/main.py
root/more/foo.py
root/more/bar.py
from bar import bar

class Foo():
    def __init__():
        myBar = bar()

if __name__ == '__main__':
    G = Foo()
    print(G.myBar)
文件foo如下所示:

root/main.py
root/more/foo.py
root/more/bar.py
from bar import bar

class Foo():
    def __init__():
        myBar = bar()

if __name__ == '__main__':
    G = Foo()
    print(G.myBar)
Main.py看起来像:

import more.foo as f
.
.
.
调用此行时,解释器在查找foo时没有问题,但导入行在foo.py中引发错误:

ModuleNotFoundError:没有名为“bar”的模块

当我在本地运行foo时,它可以有效地查找bar和函数。你能帮助我这里发生了什么,我能做些什么来规避这个问题吗


我正在OSX中使用PyCharm运行Python 3.7。

我假设当您说您以本机方式运行foo时,您更多地处于文件夹中

为了解决您的问题,您只需从根目录导入与其位置相关的所有类,因为入口点位于main.py中

如果您从more.bar导入bar,则此操作应有效: