use*_*309 9 shared-libraries python-3.x
假设我有两个具有以下结构的项目:
/项目1
/项目2
现在我开发了一个对这两个项目都有用的函数/类。我想把它放在 project1/project2 目录之外的某个地方,并将它作为一个单独的项目进行维护。所以我可能需要这样的结构:
/项目1
/项目2
/共享
如果我将辅助函数/类放在共享文件夹中的项目中,如何从 project1/project2 使用它们?
目前我的选择是在 project1/project2 中使用 sys.path.append('/shared') ,然后从共享文件夹导入。
有没有更多的pythonic方法来做同样的事情?
小智 6
您可以使用父模块导入 /shared,只要父模块在 PYTHONPATH 中。如果您的项目如下所示:
toplevel_package/
??? __init__.py
??? main.py
??? project1
??? __init__.py
??? foo.py
??? project2
??? __init__.py
??? bar.py
??? shared
??? __init__.py
??? save_files.py
Run Code Online (Sandbox Code Playgroud)
然后导入看起来像:
from toplevel_package.shared import save_files
Run Code Online (Sandbox Code Playgroud)
只要 toplevel_package 在您的 PYTHONPATH 中,这就会起作用。任何一个:
更多信息可以在import from parent 中找到。
您也可以简单地使用完整路径导入,在我看来这不像Pythonic,但在某些情况下效果很好(最后, .