我在site-packages目录中安装了一个基于Python的包。但是,我正在尝试学习代码是如何工作的,所以我想通过输入大量的print语句来破解它,这样我就能理解代码在做什么。但是在一天结束时,我想要一个干净的安装,而不是我的所有黑客。
当然,我可以将原始文件复制到其他地方,制作一些黑客,然后最后复制所有原始文件。但这真的很乏味。至少,我想安装Python包的本地副本,然后让python脚本优先使用此副本(可能通过脚本顶部的适当语句)。但也许这甚至不是进行python开发/黑客攻击的最佳方式。
对我的问题最好的解决方案是什么?我希望能够破解包(并使用该包),但不会弄乱我的干净版本。
答案 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进行回滚)文件。