在Windows上使用Python虚拟环境时有哪些缺陷和解决方法?

简短的介绍
这个问题并不是要问是否需要使用虚拟环境,但是在使用Ian Bicking的virtualenv时 ,如何pipe理Windows中的环境是最好的方法。 如果您有多个想法,请多次回答,以便最好的答案可以投票。 谢谢!

背景
python中开发时,我通常尽可能地使用Mac osx / bash。 不过,总有一些项目被迫使用Windows来支持硬件/驱动程序。 对于这些项目,我倾向于依靠“双击”方法来运行已注册的python.exe模块。 使用“双击”是一种简单的方式来同时运行多个线程/testing,而无需打开新的命令提示符,深入到所需的目录,然后input“python.exe module.py” 。

最终目标
我想有一种方法来pipe理和利用虚拟环境,而不必在命令提示符下(仅限Windows)

愿望清单
1.能够从pip(命令行)或二进制文件(对于那些由于某种原因无法用pip安装的文件)来安装模块。
2.使用GUI从virtualenv.exepipe理环境。 (创build,删除,列表,激活等…)

研究
到目前为止,我已经能够使用不同的脚本/方法来完成我的愿望清单,但是还没有find合并的方法。 我打算将其中的大部分组合到我自己的GUI中,但是认为找出是否存在这个不存在的理由是明智的。

安装二进制文件到虚拟环境可以用一个脚本来完成,这个脚本可以改变在Windows中注册了什么版本的python。 我几个月来一直在使用这个脚本,除了很好的结果。 看到这个问题

pipe理环境似乎是更困难的部分。

如果使用bash,则有Doug Hellmann写的virutalenvwrapper 。 我在Mac OSX中使用这个function,并高度推荐它。

在这里find的这个Power Shell有一个端口,但是仍然需要安装第三方命令提示符界面。

一个更独特的端口,我已经看到端口virtualenvwrapper窗口,以bat文件。 我没有testing过,但是仍然需要使用命令提示符。 在这里find

我发现迄今为止最有希望的帮手function是由Justin Driscoll撰写的。 虽然这个确切的例子需要命令提示符,但将其转换为python GUI可以调用的东西是微不足道的。 这是我走下坡路之前,我想我应该与群众一起去实现我的目标的最好方法。

Solutions Collecting From Web of "在Windows上使用Python虚拟环境时有哪些缺陷和解决方法?"

你可能想看看zc.buildout 。 假设用户安装了Python,可以双击bootstrap.py python脚本来生成环境。

一旦创建,双击bin\buildout.exe将递归地安装依赖关系,并运行您定义的任何前/后挂钩方法。 zc.buildout允许您指定平台特定的依赖关系和非python依赖关系。 另外,你可以定义自己的扩展脚本放在bin\文件夹中。 例如, Plone团队在Windows上引用了自己的脚本bin\instance.exe 在其上运行了Buildout

虽然在Mac / Linux / BSD上没有像virtualenv那么出色,但是将会创建相同的构建环境(例如, bin/buildout而不是bin\buildout.exe )来实现您所拥有的跨平台的需求。