virtualenv 中的日志记录模块

obk*_*obk 6 python logging virtualenv

Ubuntu 12.10

在尝试让flask+logging 在virtualenv 中工作时,我发现日志模块似乎没有从virtualenv 中导入(下面片段中的最后一行)。

(我认为当我的flask应用程序在virtualenv中运行时,这会产生不打印到日志文件的副作用,但如果这个问题没有帮助,我会单独询问)

为什么是这样??日志模块有什么特别之处吗?

# system python
# imports come from /usr/lib/python2.7 as expected

me@home:~/Desktop$ python
Python 2.7.3 (default, Apr 10 2013, 05:13:16) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import re; print re
<module 're' from '/usr/lib/python2.7/re.pyc'>                          # OK
>>> import logging; print logging
<module 'logging' from '/usr/lib/python2.7/logging/__init__.pyc'>       # OK
>>> exit()

# make virtual env

me@home:~/Desktop$ virtualenv --version
14.0.0
me@home:~/Desktop$ virtualenv testenv
New python executable in /home/me/Desktop/testenv/bin/python
Installing setuptools, pip, wheel...done.

# Try again inside venv

me@home:~/Desktop$ source testenv/bin/activate
(testenv) me@home:~/Desktop$ python
Python 2.7.3 (default, Apr 10 2013, 05:13:16) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import re; print re
<module 're' from '/home/me/Desktop/testenv/lib/python2.7/re.pyc'>     # OK!
>>> import logging; print logging
<module 'logging' from '/usr/lib/python2.7/logging/__init__.pyc'>      # WHY?
Run Code Online (Sandbox Code Playgroud)

Vin*_*jip 2

Python 标准库中的大多数模块都不会复制到 virtualenv - 只有 virtualenv 正常运行所需的少数模块。所以你看到的情况是正常的。

  • 即使使用“--always-copy”选项?如果是这样,我怎样才能将“logging”模块(在我的具体情况下)复制到virtualenv并从virtualenv加载? (2认同)