Python virtualenv非常

2024-04-26 20:27:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python2.7.3开发Ubuntu12.04x64,我刚刚将Django1.5.4站点移植到Virtualenv1.7.1.2。

但是,我注意到,当Python命令从活动的virtualenv运行时,它比使用系统的Python安装时慢得多。E、 g.runnigpython manage.py validate使用系统的Python持续~1s,而在virtualenv环境中运行的同一命令持续~4s。这正常吗?我遗漏了什么吗?在使用Apache+virtualenv部署此站点时,我是否会遇到效率问题?

注意:当本地Django开发服务器运行时,我在使用站点时没有注意到效率问题。它似乎只影响从virtualenv内部的shell运行的python命令。。。这是真的吗?

更新1:

这里有一个我实际得到的时间的例子:

enric@developer:~/Documentos/workspace/EurekaStart$ time python manage.py validate
0 errors found

real    0m1.049s
user    0m0.648s
sys     0m0.120s
enric@developer:~/Documentos/workspace/EurekaStart$ source env/bin/activate
(env)enric@developer:~/Documentos/workspace/EurekaStart$ time python manage.py validate
0 errors found

real    0m5.261s
user    0m0.968s
sys     0m1.032s

更新2:

我做了进一步的测试,并将virtualenv更新到了最新版本1.10.1,我注意到时代进步了,但只是一点点(0.5到1)。我还尝试使用--system-site-packages标记创建env,时间比使用系统默认的Python慢得多。以下是时代周刊:

使用未使用system-site-packages创建的env

(env)enric@developer:~/Documentos/workspace/EurekaStart$ time python manage.py validate
0 errors found

real    0m4.648s
user    0m1.008s
sys     0m0.824s

使用使用system-site-packages创建的env2

(env2)enric@developer:~/Documentos/workspace/EurekaStart$ time python manage.py validate
0 errors found

real    0m1.921s
user    0m0.760s
sys     0m0.312s

注意,没有任何env的正常执行持续1s(如update1所述)。


我刚刚创建了同样的virtualenv,里面安装了完全相同的libs,都是从一个新的Ubuntu 12.04(live CD)开始的,一切正常!它甚至在这台新机器上运行得更快:0.6s而不是我的机器中的1.0。

值得注意的一点是:如果我在我的真实机器中使用从新的Ubuntu创建的virtualenv,它的运行速度与在没有virtualenv的情况下执行命令的速度一样快,这正是实际需要的。但是,如果我使用从这台机器创建的virtualenvs,那么它们运行得非常慢。

所以,我想系统中安装的libs确实会影响virtualenv的创建方式。

现在,问题是。。。是否有任何方法可以清除我的Ubuntu安装以创建高效的virtualenvs?是否有任何已知的库可能导致此问题?(系统中没有损坏的包,因为我已经检查过了)。


Tags: pyenvdevelopermanagevirtualenvtime系统validate