gpt4 book ai didi

python - 使用生成步骤打包 Web 应用程序的 pythonic 方法是什么?

转载 作者:太空狗 更新时间:2023-10-30 01:37:48 25 4
gpt4 key购买 nike

我有一个基于 Python 的网络应用程序,我正在尝试将其打包为 setuptools 包,以便可以使用 pip 和/或 安装它python setup.py xxxxx。此 Web 应用程序还包含用于 React 前端的静态文件。我使用 webpack(因此使用 node.js)为网站生成 JavaScript 包。我试图找出最 pythonic 的方式来打包它。通过谷歌搜索,我发现了 nodeenv这似乎是相关的。

理想情况下,我希望这个包具有以下特征:

  • 当使用 pip installpython setup.py install 安装时,不应安装 nodewebpack,但安装的包应该包含 webpack 输出。

  • webpack 生成的输出应该需要检查到源代码库中。 (即需要在打包过程中的某个时刻生成。)

  • 当通过 pip install -epython setup.py develop 为开发设置包时,它应该安装nodewebpack(我怀疑前面提到的 nodeenv 在这方面会有用。)它还应该运行 webpack,这样之后,webpack生成的内容就存在了。

  • 如果这很容易,如果 webpack 可以在 virtualenv 激活时以“监视”模式启动,并在它停用时停止(但这是 完全一个延伸目标。)

鉴于这些要求,我的预感是我需要将 sdist 命令子类化,以便在源分发生成时生成 webpack 输出。我还猜测我需要子类化 develop 命令以注入(inject)仅开发需求。

看来这是一座肯定有人走过的桥。有人有任何指示吗?

最佳答案

我认为你最好将这些问题分解成不同的构建步骤,如果我们稍微剖析你的过程,这些步骤就会出现(假设 nodenpm并且 virtualenv 已经安装在你的盒子上)

  1. 在本地 virtualenv 中安装所需的 python 模块。
  2. 安装 webpack 和运行 webpack 脚本所需的 npm 模块。
  3. 运行 webpack 配置,以便您的静态 Assets 将在本地编译。

这些步骤中的每一个都代表一个命令,可以在 Makefile 中结束,或者只是一个简单的 shell 脚本(或者使用 Fabric 如果你想坚持使用 python),所以你会结束使用以下命令:

  • python-requirements
  • Node 要求
  • 构建静态
  • build -> python-requirements, node-requirements, build-static

现在你可以随意运行这些命令了!例如,如果您正在部署,您将运行 build,这将连续运行每个步骤。

关于python - 使用生成步骤打包 Web 应用程序的 pythonic 方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32801417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com