从任意VCS存储库安装python模块的最佳实践

fma*_*ark 5 python version-control module easy-install

我对python生态系统很新,并对模块编辑有疑问.

我使用了一堆在PyPi上发布的第三方模块.来自C和Java背景,我喜欢它的易用性easy_install <whatever>.这是一个新的,精彩的世界,但是当我想编辑新安装的模块时,模型会出现故障,原因有两个:

  1. egg文件可以存储在一个文件夹或档案的地方在文件系统上疯狂英寸
  2. 使用egg似乎排除使用原始项目的版本控制系统,就像使用debian包阻止从原始VCS存储库进行开发一样.

从任意VCS存储库安装模块的最佳实践是什么?我希望能够继续使用import foomodule其他脚本.如果我修改模块的源代码,我是否需要执行任何其他命令?

lam*_*cck 2

您是否想要进行开发,但让系统将开发的版本作为鸡蛋处理(例如获取入口点)?如果是这样,那么您应该检查源代码并通过执行以下操作来使用开发模式

python setup.py develop
Run Code Online (Sandbox Code Playgroud)

如果该项目恰好不是上述所需的基于 setuptools 的项目,则可以使用以下命令快速解决方法:

python -c "import setuptools; execfile('setup.py')" develop
Run Code Online (Sandbox Code Playgroud)

几乎所有您想了解的有关 setuptools(easy_install 的基础)的信息都可以从setuptools 文档中找到。还有easy_install 的文档

开发模式以与 easy_install 相同的方式将项目添加到导入路径。您所做的更改将在您的应用程序下次导入模块时可用。

正如其他人提到的,如果您只想获取最新版本,但无法编辑,您也可以直接使用版本控制 URL,但这只会拍摄快照,并且确实会创建一个普通的 Egg 作为该过程的一部分。我确信它可以支持 Subversion,并且我认为它也可以支持其他版本,但我找不到相关文档。