如何在每个项目的基础上而不是在系统范围内安装python模块?

时间:2011-01-03 07:07:36

标签: python distutils

我正在尝试使用git定义一个将django项目从我的开发服务器迁移到我的生产服务器的过程,这让我很疯狂,因为distutils在系统范围内安装了python模块。我已经阅读了文档,但除非我遗漏了一些内容,否则它似乎主要是关于如何更改安装目录。我需要能够在同一服务器上运行的不同项目中使用相同模块的不同版本,并且无需下载和安装依赖项即可从git部署项目。

tl; dr:我需要知道如何使用distutils将python模块安装到我项目的源代码树中进行版本控制,而不会影响使用同一模块的不同版本的其他项目。

我是python的新手,所以如果这是常识,我会事先道歉。

4 个答案:

答案 0 :(得分:3)

也许您正在寻找virtualenv。它允许您将软件包安装到单独的虚拟Python“root”中。

答案 1 :(得分:3)

除了已经提到的virtualenv这是一个不错的选择,但是可能存在需要第三方模块的缺点,Distutils本身也可以选择将模块安装到任意位置。特别是,home scheme允许您“构建和维护Python模块的个人藏匿”。它在Python文档集here中进行了描述。

答案 2 :(得分:1)

为了完整起见,virtualenvwrapper一旦你在多个项目和/或同时在多个开发平台上工作,每天都可以更快更简单地使用virtualenv。

答案 3 :(得分:0)

如果您正在寻找类似于 JavaScript 世界的 npmyarn 或 PHP 世界的 composer,那么您可能想要查看 pipenv(不是与 pip 混淆)。 Here's a guide to get you started.

或者还有Poetry,有人说更好,但我还没用过。