AttributeError:模块“资源”没有属性“ getpagesize”

时间:2019-04-02 10:06:59

标签: python-3.x tensorflow jupyter-notebook object-detection

我正在尝试使用Tensorflow对象检测API,并遵循给定链接中提到的步骤-

JSONLint

当我尝试通过jupyter notebook访问对象检测Jupyter Notebook

我面临以下异常

Traceback (most recent call last):
  File "/usr/local/bin/jupyter-notebook", line 7, in <module>
    from notebook.notebookapp import main
  File "/home/dinesh/.local/lib/python3.6/site- 
packages/notebook/notebookapp.py", line 79, in <module>
    from .base.handlers import Template404, RedirectWithParams
  File "/home/dinesh/.local/lib/python3.6/site- 
packages/notebook/base/handlers.py", line 32, in <module>
    import prometheus_client
  File "/home/dinesh/.local/lib/python3.6/site-
packages/prometheus_client/__init__.py", line 7, in <module>
    from . import process_collector
  File "/home/dinesh/.local/lib/python3.6/site- 
packages/prometheus_client/process_collector.py", line 12, in <module>
_PAGESIZE = resource.getpagesize()
AttributeError: module 'resource' has no attribute 'getpagesize'

我正在使用

Python - 3.6.3

Jupyter - 1.0.0

如何克服这种例外情况?

3 个答案:

答案 0 :(得分:0)

我有同样的错误,在resource中重命名了PYTHONPATH模块之后,它正常工作了。检查您的PYTHONPATH,是否有资源模块?

答案 1 :(得分:0)

出现类似的错误。我的项目包含模块(文件夹)

  • 模型
  • 资源(用资源替换)
  • 服务

因此我将资源模块的名称更改为资源(将名称更改为任何适当的模块名称)

答案 2 :(得分:0)

我在 Windows 10 上启动 Jupyter Notebooks 时遇到了类似的问题。
当我最初运行常规启动脚本时,我得到了一个打开并立即关闭的 Windows 终端,速度太快而看不到任何错误消息。所以,我打开了一个 Windows 10 powershell 终端并运行了

<块引用>

conda 更新 conda 和 康达更新 --all 然后我跑了 Windows 提示符下的 jupyter-notebook。结果是:

回溯(最近一次调用最后一次): 文件“E:\Users\Bob\anaconda3\Scripts\jupyter-notebook-script.py”,第 6 行,在 从 notebook.notebookapp 导入 main 文件“E:\Users\Bob\anaconda3\lib\site-packages\notebook\notebookapp.py”,第 76 行,在 从 .base.handlers 导入 Template404,RedirectWithParams 文件“E:\Users\Bob\anaconda3\lib\site-packages\notebook\base\handlers.py”,第 24 行,在 导入 prometheus_client 文件“E:\Users\Bob\anaconda3\lib\site-packages\prometheus_client_init_.py”,第 3 行,在 从 。进口 ( 文件“E:\Users\Bob\anaconda3\lib\site-packages\prometheus_client\process_collector.py”,第 11 行,在 _PAGESIZE = resource.getpagesize() 属性错误:模块“资源”没有属性“getpagesize”

我在记事本++中的site-packages\prometheus_client中打开process_collector.py并更改 line 9 import resource 导入资源 和 第 11 行 _PAGESIZE = resource.getpagesize() 到 _PAGESIZE = resources.getpagesize()

我搜索了其他资源实例,但没有找到。然后我保存了文件并在 Windows 终端提示符下重新运行 jupyter-notebook。

这次我得到了: 回溯(最近一次调用最后一次): 文件“E:\Users\Bob\anaconda3\Scripts\jupyter-notebook-script.py”,第 10 行,在 sys.exit(main()) 文件“E:\Users\Bob\anaconda3\lib\site-packages\jupyter_core\application.py”,第 254 行,在 launch_instance 中 返回 super(JupyterApp, cls).launch_instance(argv=argv, **kwargs) 文件“E:\Users\Bob\anaconda3\lib\site-packages\traitlets\config\application.py”,第844行,在launch_instance app.initialize(argv) 文件“E:\Users\Bob\anaconda3\lib\site-packages\traitlets\config\application.py”,第 87 行,在内部 返回方法(应用程序,*args,**kwargs) 文件“E:\Users\Bob\anaconda3\lib\site-packages\notebook\notebookapp.py”,第 2126 行,初始化 self.init_resources() 文件“E:\Users\Bob\anaconda3\lib\site-packages\notebook\notebookapp.py”,第 1697 行,在 init_resources old_soft, old_hard = resource.getrlimit(resource.RLIMIT_NOFILE) AttributeError: 模块 'resource' 没有属性 'getrlimit'

仍然打开 Notepad++,我在 site-packages\notebook 中打开 notebookapp.py 并搜索资源。我发现并更改了以下几行: 第37行导入资源导入资源 第 40 行资源 = 无到资源 = 无 第 1036 行资源为无到资源为无 第 1040 行软,硬 = resource.getrlimit(resource.RLIMIT_NOFILE) 到 软,硬 = resources.getrlimit(resources.RLIMIT_NOFILE) 第 1693 行如果资源为无:到如果资源为无: 第 1697 行 old_soft, old_hard = resource.getrlimit(resource.RLIMIT_NOFILE) 到 old_soft, old_hard = resources.getrlimit(resources.RLIMIT_NOFILE) 第 1706 行 resource.setrlimit(resource.RLIMIT_NOFILE, (soft, hard)) 到 resources.setrlimit(resources.RLIMIT_NOFILE, (soft, hard))

我搜索了其他资源实例,但没有找到。然后我保存了 notebookapp.py 文件并在 Windows 终端提示符下重新运行 jupyter-notebook。这次 Jupyter Notebooks 打开并显示了预期的文件选项卡。我退出了 Jupyter Notebooks 并使用启动脚本的正常链接重新启动,它按预期工作。

我不确定是什么导致了这个问题。在看到问题之前,我没有故意更新任何内容。昨天,Jupyter Notebooks 按预期工作,今天当我尝试运行它时,出现上述闪烁屏幕。