在对这个问题的回答中,有人建议高级用户可能喜欢直接开发软件包,而不是在操场上开发,然后创建单独的包--具体来说,就是创建跨包助手函数,而不必打包/重新打包等等。
这里有几个问题。其中有些是“现成的”,所以我很高兴自己做实验/研究,但我只是想问一下,以防有任何已知的问题/想法/最佳实践出现在我的脑海中。
/usr/share/docassemble/local3.8/lib/python3.8/site-packages/docassemble/[[package-name]]/data.../site-packages/docassemble/helpers来开发助手函数/交叉使用访谈材料,然后根据需要导入到.../data中吗?/usr/share/docassemble/config/、.../docassemble/backup等的各种引用,但是我还没有为整个文件系统或docassemble的文件系统找到任何东西(例如,显然没有必要部署alpine )。.yml文件的CWD是.../data。/usr/share/docassemble/local3.8/lib/python3.8/site-packages/docassemble/helpers/helper.py目录和文件,那么我可以使用如下所示的方法将helper.py导入到虚构的interview.yml文件中?并不是说这是最好的主意,但只是问一下它是否有效,试着更好地理解docassemble.对于这样的工作流程,还没有进行充分的思考(例如,如果使用操场来打包东西更好,或者还有其他更简单的选择)。---
modules:
- .....helpers.helper
---docassemble/packagename/data/文件夹中并按如下方式导入,从而将包中的代码抽象出来:---
modules:
- .module
---我想我甚至可以像这个.../data/modules/module.py那样构造我的文件,然后用下面这样的东西导入?
---
modules:
- .modules.module
---我很乐意做我自己的实验/研究,但我只是想问一下,万一有任何已知的问题/想法出现在我的脑海中。
发布于 2021-03-18 11:34:34
Dockerfile运行python3.8 -m venv --copies /usr/share/docassemble/local3.8。当需要升级到Python3.9时,它将执行python3.9 -m venv --copies /usr/share/docassemble/local3.9。如何在这个虚拟环境中安装软件包取决于Pythonandpip的开发人员。site-packages/docassemble/helpers目录将是docassemble.helpers包的目录。您可以编写这样的包并将其发布到PyPI上(名称尚未确定)。docassemble.familylaw:data/questions/kids.yml。如果您编写data/static/tweaks.css,它将假定您是指当前包中的一个文件。如果您只是给它一个文件名(例如,tweaks.css),它将假设您指的是当前包中的一个文件,并且它将根据上下文对您所引用的数据文件夹进行假设。如果您的package称为docassemble.familylaw,那么数据文件夹位于docassemble.familylaw包内的docassemble/familylaw/data。docassemble.helpers的package并安装它,但是通过直接将文件写入来绕过docassemble的包安装系统是不可取的。请注意,docassemble是一个云应用程序,所以docassemble "server“可能是一组机器。包管理系统确保您可以执行docker stop、docker rm、docker pull和docker run,并且您的服务器将与所有正确的Python包一起重新启动和运行,即使docker pull导致从Python3.8升级到Python3.9。modules块与data文件夹无关。如果docassemble.xyz列在modules块中,docassemble运行from docassemble.xyz import *并将模块导出的名称导入到interview命名空间中。https://stackoverflow.com/questions/66685617
复制相似问题