组织python项目结构和分发的正确方法

2024-04-25 12:20:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Python客户服务项目。逻辑依赖关系如下所示: logical dependencies

换句话说,我有一些服务(srv1srv2srvX)在service.py中,这些服务的一些客户机(srv1_cl.pysrv2_cl.pysrvX_cl.py)在client.py中有公共代码,common.py中有服务和客户机的通用代码。在

现在,我在为开发构建git存储库和向用户部署项目时遇到了问题。在

首先,我尝试将我的客户机和服务存储在不同的文件夹中。此外,我为每个服务创建了一个文件夹,因为每个服务可以包含很多文件。在

/myrepo.git
    common.py
    /clients
        client.py
        srv1_cl.py
        srv2_cl.py
    /services
        service.py
        /srv1
            conf.py
            srv1.py
            start.bat
        /srv2
            conf.py
            srv2.py

当我像这样存储文件时,我遇到了一个问题——Python脚本如何从上层目录导出文件?因为我需要测试我的客户机脚本,进行一些更改并执行。在

我找到了一些基于添加PATH和上面的文件夹(sys.path.insert(0, parentdir),但我确信这不是一个好方法)和{a1}的解决方案。但是对于相对导入,我必须将脚本打包到一个包中。在

好吧,假设我会这么做,但还有一个问题。我想将“客户机”与“服务”分开部署,因为我不想与我的用户共享服务的代码。我怎么处理这个问题?在

我的项目最好的结构是什么?当我将代码打包到一个包中时,如何开发和调试我的项目?因为为了测试,我想从我的子文件夹启动客户机。在


Tags: 文件项目代码pygit脚本文件夹client
1条回答
网友
1楼 · 发布于 2024-04-25 12:20:50

好问题。在目录树中导入不同级别的模块并进行部署时,我遇到了类似的问题。最后,我将项目树重新组织为非常扁平的(所有文件都在一个目录中),并且只是将文件命名为informatively,并对代码进行了大量的修改以获得所需的功能。对于部署,我将主pyc文件复制到子项目文件夹中。 不过,我想知道一个更好的方法。在

相关问题 更多 >

    热门问题