python - 使用 memory_profiler 时无法导入模块

标签 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() 的函数调用,然后我没有得到错误。

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

最佳答案

根据我的经验,内存分析器不使用其 PYTHONPATH 中的当前目录。所以我的解决方法是使用以下命令:
PYTHONPATH=./<CORRECT_PATH> python -m memory_profiler example.py

关于python - 使用 memory_profiler 时无法导入模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16671008/

相关文章:

python - 在django中放置非模型类的位置

我遇到的 Python 导入问题

c# - 实现行级分析

java - 示例含义上的 CPU 使用情况以及在您的套件上获取准确的状态时间

python - 在 python 中,如何使 main args 全局化

python - 如何使用 argparse 收集不带 -- 的单独命令行的参数?

python - Argparse:未显示子解析器的默认值

python - 如何使用 pydub 检测音频流中的静音?

python - 在基于 trio 的 Python 应用程序中生成进程并在进程之间进行通信

java - 方法在 netbeans 分析器中花费 0ms