python 包装和 GitHub 的规范工作流程
Canonical workflow for python packaging and GitHub
我正在做一个我发布到 PyPi 的独立项目。现在我已经使用 pip 安装了它,而不是从我的 git 存储库中使用它,继续开发的最佳实践是什么?
到目前为止我已经尝试了两种方法:
- 天真:在
site-packages
文件夹中编辑脚本,测试它们,一旦完成,复制到 repo 并推送(构建、发布等)
- 二重身:制作一个(稀疏的)回购来跟踪
site packages
中的脚本,随时推送。准备好发布后,转到包含完整存储库的文件夹,拉取然后构建>发布。
现在,1.太笨重了,而2.让我很不满意。本来想用bash的小技巧来精简2.,不过想到这里的高手可能有更精简的东西,所以问一下。
谢谢!
对于开发,您仍然希望从 git 存储库而不是 PyPi
.
获取和编辑源代码
例如,如果您的 git 存储库位于 .../src/myproject/
下,我会 运行 pip install .
在 myproject
中。如果从 PyPi 下载,这将以与 pip install myproject=={version}
完全相同的方式模拟安装。 (将代码复制到site-packages
)
更适合开发的是 pip install -e .
,它将 site-packages
中的符号 link 设置回您的源目录。因此,虽然看起来您的项目已安装在您的 venv 中,但实际上它只是在使用您的 git
存储库文件夹中的源代码。
一般来说,从 PyPi 下载的是您脚本的用户,而不是贡献者。
如果您希望我对此进行扩展,请在评论中告诉我。
我正在做一个我发布到 PyPi 的独立项目。现在我已经使用 pip 安装了它,而不是从我的 git 存储库中使用它,继续开发的最佳实践是什么?
到目前为止我已经尝试了两种方法:
- 天真:在
site-packages
文件夹中编辑脚本,测试它们,一旦完成,复制到 repo 并推送(构建、发布等) - 二重身:制作一个(稀疏的)回购来跟踪
site packages
中的脚本,随时推送。准备好发布后,转到包含完整存储库的文件夹,拉取然后构建>发布。
现在,1.太笨重了,而2.让我很不满意。本来想用bash的小技巧来精简2.,不过想到这里的高手可能有更精简的东西,所以问一下。
谢谢!
对于开发,您仍然希望从 git 存储库而不是 PyPi
.
例如,如果您的 git 存储库位于 .../src/myproject/
下,我会 运行 pip install .
在 myproject
中。如果从 PyPi 下载,这将以与 pip install myproject=={version}
完全相同的方式模拟安装。 (将代码复制到site-packages
)
更适合开发的是 pip install -e .
,它将 site-packages
中的符号 link 设置回您的源目录。因此,虽然看起来您的项目已安装在您的 venv 中,但实际上它只是在使用您的 git
存储库文件夹中的源代码。
一般来说,从 PyPi 下载的是您脚本的用户,而不是贡献者。
如果您希望我对此进行扩展,请在评论中告诉我。