5

我收到了一些使用 virtualenv 清理我的 python 模块的建议。我很担心,因为它看起来好得令人难以置信。在使用多核设置、starcluster、numpy、scikit-learn、pandas 或 iPython 笔记本时,是否有人发现与性能或内存问题相关的不利因素。

4

2 回答 2

3

当涉及到依赖关系时,Virtualenv 是保持某种秩序的最好和最简单的方法。在处理模块的安装和跟踪方面,Python 确实落后于 Ruby(捆绑程序!)。您拥有的最好的工具是 virtualenv。

因此,我建议您为每个应用程序创建一个 virtualenv 目录,将一个文件放在一个文件中,其中列出了构建环境所需的所有“pip install”命令,并确保您有一个干净的、可重复的过程来创建这个环境。

我认为应用程序的性质几乎没有什么区别。不应该有任何性能问题,因为 virtualenv 所做的只是从特定路径加载库,而不是从默认保存它们的目录加载它们。

无论如何(这可能完全无关紧要),但是如果性能是一个问题,那么也许您应该研究一种编译语言。不过,最有可能的是,任何性能瓶颈都可以通过更好的编码得到改善。

于 2013-03-21T06:23:52.917 回答
0

使用 virtualenv 没有性能开销。它所做的只是使用文件系统中的不同位置。

唯一的“开销”是设置它所需的时间。你需要在你的 virtualenv 中安装每个包(numpy、pandas 等)

于 2013-03-21T06:23:16.260 回答