gpt4 book ai didi

找不到 Python 站点包模块

转载 作者:行者123 更新时间:2023-11-28 22:59:14 25 4
gpt4 key购买 nike

我遇到麻烦主要是因为我对 python 和 OSX 缺乏经验,并试图了解它们是如何工作的。

最终目标是让这个模块运行:http://pypi.python.org/pypi/memory_profiler , 除了它永远找不到模块。

所以对于初学者来说,我做了 easy_install,据我所知一切都安装好了:

easy_install -U memory_profiler # pip install -U memory_profiler

接下来我创建了一个 example.py 文件来启动:

@profile
def my_func():
return 2

if __name__ == '__main__':
my_func()

并尝试运行它,但出现了这个错误:

$ python example.py

Traceback (most recent call last):
File "example.py", line 2, in <module>
@profile
NameError: name 'profile' is not defined

这与其说是关于 memory_profiler 模块的问题,不如说是关于我做错了什么以及配置不正确的问题?我正在使用 OSX 10.8.2 和 Python 2.7。

这就是我的“which python”所说的:

/Library/Frameworks/Python.framework/Versions/Current/bin/python

因为它是符号链接(symbolic link),所以当我转到原始链接时:

/Library/Frameworks/Python.framework/Versions/2.7/bin/python

让我感到困惑的是 easy_install 正确地将 memory_profiler.py 文件放在了这个文件夹中:

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

而且我了解到,当 python 运行时,它会检查 PYTHONPATH 和站点包中的模块。 (??)

但是如果模块在 site-packages 文件夹中,为什么 example.py 不起作用?此外,如果 site-packages 文件夹中的模块应该是路径的一部分,我想我至少可以运行 memory_profiler.py 只是为了看看它是否由 python 运行,但却得到了这个错误:

python memory_profiler.py
/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python:
can't open file 'memory_profiler.py': [Errno 2] No such file or directory

这也让我感到困惑,因为它说明 python 在:../2.7/Resources/Python.app/Contents/MacOS/Python,但我认为它应该是 ../2.7/bin/python,它不应该检查 ../2.7/lib/python2.7/site-packages 中的 memory_profiler.py 文件吗?

另外,为什么这两个文件夹都存在,有什么区别?

/System/Library/Frameworks/Python.framework
/Library/Frameworks/Python.framework

我遗漏了一大块拼图,因此非常感谢任何指向正确方向的帮助。

更新:

我遗漏了:

from memory_profiler import profiler

可能是我的大部分问题,但现在我得到了这个错误:

Traceback (most recent call last):
File "example.py", line 1, in <module>
from memory_profiler import profiler
ImportError: cannot import name profiler

最佳答案

我假设您有进口报表? from memory_profiler import profiler...从阅读您的问题看来,您认为 python 会自动从 PYTHONPATH 中的所有模块导入所有内容,但事实并非如此,因为那样会占用太多内存,什么如果两个模块具有相同的功能。

编辑

所以看起来 @profiler 装饰器工作的唯一方法是从命令行运行程序...

python -m memory_profiler example.py

如果您想在脚本中使用 memory_profiler,请引用此示例。 https://github.com/fabianp/memory_profiler/blob/master/examples/plot_memory.py

关于找不到 Python 站点包模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13205583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com