当我将python类放置到其他地方时,是否可以在不编辑调用者和被调用者的情况下保持一切正常工作?

当我将python类放置到其他地方时,是否可以在不编辑调用者和被调用者的情况下保持一切正常工作?,python,Python,我开始将Python用于一些实际的事情,并很快意识到任何与从另一个文件夹导入相关的事情都是一团糟。我想知道我是否可以在其他IDE中获得类似“项目依赖性”的东西,将我自己的项目链接在一起,或者我可以获得一个库来为我做到这一点,就像我可以从许多应用程序框架中获得的一样 假设我们有一个类似这样的项目: {root} -- foo ---- foo.py ------class foo() -- bar ---- bar.py ------class bar() 您可以使用复杂的导入命令,如修改sys

我开始将Python用于一些实际的事情,并很快意识到任何与从另一个文件夹导入相关的事情都是一团糟。我想知道我是否可以在其他IDE中获得类似“项目依赖性”的东西,将我自己的项目链接在一起,或者我可以获得一个库来为我做到这一点,就像我可以从许多应用程序框架中获得的一样

假设我们有一个类似这样的项目:

{root}
-- foo
---- foo.py
------class foo()
-- bar
---- bar.py
------class bar()
您可以使用复杂的导入命令,如修改
sys.path
PYTHONPATH
,或者使用相对查找,当
类栏
移动到其他地方时,相对查找不再起作用,加上使用不同的脚本入口点会导致解释器丢失的问题

简单地说,以干净的方式避免此类导入错误的最佳方法是什么?我不是说我能从Pypi那里得到什么。似乎有一些完整的解决方案,但我找不到它们的详细信息


我希望看到一种类似于许多OOP语言的解决方案,将一个类移动到另一个文件夹不会影响任何东西,如对象绑定。

抱歉,但有问题要求我们推荐或查找书籍、工具、软件库,教程或其他非站点资源对于堆栈溢出来说是非主题的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,到目前为止已经做了什么来解决它呢。@algerbrex让我们来看看是否有一个解决方案。当我将python类放置到其他地方时,是否可以在不编辑调用者和被调用者的情况下保持一切正常工作?我会根据需要重新表述这个问题。您是否在所有文件夹中都包含了一个
\uuuu init\uuuu.py
文件?是的,即使在我使用Python 3时,我仍然添加了它们。但是这里有点不同,我想看到你可以
导入foo
,不管foo在哪里,所以
\uuuu init\uuuu.py
案例在这里不适用。@xxbidiao你的问题真的不清楚。您是否希望您的
条形图
模块始终可以作为顶级模块导入,就像在
导入条形图
中一样,即使将其移动到其他地方?您希望Python(或依赖关系管理器)如何知道它应该在哪里查找
bar