如何在python项目之间共享代码?

时间:2018-02-23 19:24:26

标签: python-3.x shared-libraries

假设我有两个具有以下结构的项目:

/ PROJECT1
/项目2

现在我已经开发了一个对这两个项目都有用的函数/类。我想将它放在project1 / project2目录之外的某个地方,并将其作为一个单独的项目进行维护。 所以我可能需要这样的结构:

/ PROJECT1
/项目2
/共享

如果我将帮助函数/类放在共享文件夹中的项目中,如何在project1 / project2中使用它们?

目前我的选择是在project1 / project2中使用sys.path.append('/ shared'),然后在共享文件夹中执行导入。

还有更多的pythonic方法吗?

1 个答案:

答案 0 :(得分:2)

只要父模块位于PYTHONPATH中,您就可以使用父模块导入/共享。如果你的项目看起来像:

toplevel_package/
├── __init__.py
├── main.py
└── project1
    ├── __init__.py
    └── foo.py
└── project2
    ├── __init__.py
    └── bar.py
└── shared
    ├── __init__.py
    └── save_files.py

然后导入如下:

from toplevel_package.shared import save_files

只要toplevel_package在你的PYTHONPATH中,这就有效。要么:

  1. 仅启动toplevel_package脚本(可以调用子包)
  2. 将toplevel_package模块移至PYTHONPATH
  3. 中列出的任何文件夹
  4. 将toplevel_package添加到PYTHONPATH
  5. 可以在import from parent找到更多信息。

    你也可以简单地使用import using full path,在我看来不是 pythonic ,但在某些情况下效果很好(最后,。