使用memory_profiler时无法导入模块

时间:2013-05-21 13:15:12

标签: python profiling argparse python-import

我正在尝试使用memory_profiler,但我遇到了一个在example.py中被隔离的问题:

#! /usr/bin/env python 
import argparse

def parse_args():
    parser = argparse.ArgumentParser(description='Dummy description')
    parser.add_argument('--option',  action='store_true')
    return parser.parse_args() 

if __name__ == '__main__':
    parse_args()

所以基本上只使用argparse。独立运行正常(我有Python3.3)。但是,当我发出

$ python -m memory_profiler example.py

我收到错误:

NameError: global name 'argparse' is not defined

此外,如果我把线

    parser = argparse.ArgumentParser(description='Dummy description')

下面
    if __name__ == '__main__':

我注释掉了对parse_args()的函数调用,然后我没有得到错误。

有人知道这里出了什么问题吗?

1 个答案:

答案 0 :(得分:1)

根据我的经验,memory-profiler不在其PYTHONPATH中使用当前目录,因此我的解决方法是使用以下命令:

PYTHONPATH=./<CORRECT_PATH> python -m memory_profiler example.py