如何在不安装每个virtualenv的情况下使用ipython?

时间:2014-08-15 12:33:36

标签: ipython virtualenv

背景

我在我的Mac上使用Anaconda的IPython,它是一个很好的数据探索和调试工具。但是,当我希望将IPython用于需要virtualenv的程序(例如Django Web应用程序)时,我不想每次都重新安装IPython。

问题

有没有办法使用我的本地IPython同时还使用其余的virtualenv包? (即只是让IPython成为virtualenv包的例外,这样无论如何都可以使用本地IPython设置)如果是这样,你会如何在mac上执行此操作?我的猜测是,这将是一些漂亮的.bash_profile变化,但我对它的有限知识并没有多少成果。感谢。

使用示例

现在如果我正在调试程序,我会使用以下内容:

import pdb
pdb.set_trace()  # insert this to pause program and explore at command line

这会将它带到命令行(我希望是IPython)

2 个答案:

答案 0 :(得分:0)

如果你的本地Python中有一个模块而不是virtualenv中的模块,它仍然可以在virtualenv中使用。除非你用另一个virtualenv版本来影响它。您是否尝试从没有IPython的正在运行的virtualenv启动本地IPython?它应该工作。

答案 1 :(得分:0)

Will,我猜你正在使用Anaconda" conda"包经理? (结合了pip和virtualenv的功能)。如果是这样,你应该意识到它的许多部分并不像它正在取代的工具那样完全起作用。例如。如果你使用conda create -n myenv创建你的虚拟环境,这与" normal" virtualenv在很多方面。特别是,没有"全球/默认"包:即使是默认安装本质上也是一个环境(" root"),就像所有其他环境一样。

要获得通常的virtualenv行为,您可以通过克隆根环境来创建环境:conda create -n myenv --clone root。但是,与常规virtualenv不同,如果您更改默认安装(conda中的" root"环境),这些更改不会反映在通过克隆根环境创建的环境中。

克隆根的另一种方法是保留更新的"默认包"您希望在新环境中可用。这由condarc文件中的create_default_packages选项管理。

总结:不要像常规的python virtualenvs那样对待你的conda环境 - 即使它们在许多方面看起来看似相似。希望在某些时候这两个实现会收敛。