使用python包的本地副本而不是site-packages中安装的副本

时间:2014-06-09 16:34:35

标签: python

我在site-packages目录中安装了一个基于Python的包。但是,我正在尝试学习代码是如何工作的,所以我想通过输入大量的print语句来破解它,这样我就能理解代码在做什么。但是在一天结束时,我想要一个干净的安装,而不是我的所有黑客。

当然,我可以将原始文件复制到其他地方,制作一些黑客,然后最后复制所有原始文件。但这真的很乏味。至少,我想安装Python包的本地副本,然后让python脚本优先使用此副本(可能通过脚本顶部的适当语句)。但也许这甚至不是进行python开发/黑客攻击的最佳方式。

对我的问题最好的解决方案是什么?我希望能够破解包(并使用该包),但不会弄乱我的干净版本。

3 个答案:

答案 0 :(得分:6)

看看virtualenv。您基本上可以设置一个本地python环境,您可以在其中安装任何您喜欢的东西,而不必乱用系统环境。

答案 1 :(得分:1)

这就是Python virtualenv工具的用途。它允许您使用与系统安装不同的一组软件包创建本地Python环境。例如,我可以这样做:

$ virtualenv myenv
$ . myenv/bin/activate
$ pip install nifty-module

activate脚本会修改您的PATH,以便任何以以下内容开头的脚本:

#!/usr/bin/env python

将使用虚拟环境中的Python而不是系统Python,并将在该环境中看到安装的模块。

答案 2 :(得分:1)

给出的virtualenv建议是正确的,取决于你的实际包装,你甚至可以超越它,而不是弄乱virtualenv中的网站包。

如果包是基于setuptools的,那么简单

$ python setup.py develop

来自其来源的工作副本,它不会被安装,而只是挂在指向工作副本的virtualenv上。优点:您可以在定义良好且非易失性的位置编辑(例如使用GIT或软件包维护者使用的任何SCM进行回滚)文件。