【问题标题】:import lightgbm returned non-zero exit status 2导入 lightgbm 返回非零退出状态 2
【发布时间】:2018-12-22 04:14:09
【问题描述】:

我正在运行 Windows 10。今天我通过 anaconda 使用安装了lightgbm

conda install -c conda-forge lightgbm

但是,当我尝试导入 lightgbm(运行 Jupyter Notebook)时,出现以下错误跟踪:

---------------------------------------------------------------------------
CalledProcessError                        Traceback (most recent call last)
<ipython-input-2-5dacb4a27011> in <module>
----> 1 import lightgbm as lgb

D:\RI\0Teaching Materials\QTDM-II\P30 LGBM\lightgbm.py in <module>
     10 
     11 from subprocess import check_output
---> 12 print(check_output(["ls", "../input"]).decode("utf8"))
     13 
     14 # Any results you write to the current directory are saved as output.

~\Anaconda3\lib\subprocess.py in check_output(timeout, *popenargs, **kwargs)
    334 
    335     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
--> 336                **kwargs).stdout
    337 
    338 

~\Anaconda3\lib\subprocess.py in run(input, timeout, check, *popenargs, **kwargs)
    416         if check and retcode:
    417             raise CalledProcessError(retcode, process.args,
--> 418                                      output=stdout, stderr=stderr)
    419     return CompletedProcess(process.args, retcode, stdout, stderr)
    420 

CalledProcessError:Command '['ls', '../input']' returned non-zero exit status 2.

是什么阻止我导入lightgbm

更新:- 认为这是 Windows 问题,我在 Ubuntu (Oracle VB) 上安装了 Anaconda 并尝试导入。不幸的是,在这种环境中也发生了同样的错误。这背后可能是什么?

【问题讨论】:

  • "D:\RI\0Teaching Materials\QTDM-II\P30 LGBM\lightgbm.py" 是您的文件还是 lightgbm 模块的一部分?如果是您的文件,您是否检查了“ls”命令可用性和“../input”目录可用性?可能您不是从 Anaconda 导入 lightgbm 模块,而是从这个位置 D:\RI\0Teaching Materials\QTDM-II\P30 LGBM\。
  • 尝试先更新 conda conda update -c conda-forge conda,然后再更新 conda install -c conda-forge lightgbm。这个包也有类似的问题:github.com/conda/conda/issues/7891。如果问题仍然存在,您应该在github.com/conda-forge/lightgbm-feedstock/issues 处打开New Issue
  • 当我尝试使用conda install -c conda-forge lightgbm 时,我也遇到了错误。但是我做conda install lightgbm的时候就安装成功了。
  • 顺便说一下,你能把你从 Ubuntu 得到的堆栈跟踪贴出来吗,它不可能是一样的。

标签: python import jupyter-notebook lightgbm


【解决方案1】:

您的 PYTHONPATH 中似乎有 D:\RI\0Teaching Materials\QTDM-II\P30 LGBM\,您可以通过以下方式在笔记本中查看:

import sys
print(sys.path)

或在命令行上

echo %PYTHONPATH%

如果您在该目录中启动笔记本,该目录将位于 python 路径中。 因为您在 python 路径中有该目录,所以当您尝试导入模块 lightgbm 时,python 正在查找 lightgbm.py 文件然后将其导入,并且在该文件中,您的代码将输出到 'ls ../input' 和您在 Windows 上没有“ls”,因此出现错误。第二种可能性是 ls 命令看不到 ../input 因为文件不存在。这并不重要,问题仍然是 import 语句在找到您使用 conda 安装并实际想要导入的 lightgbm 模块之前找到 lightgbm.py 文件。 (Hacky 修复方法是将 lightgbm.py 重命名为其他名称)

修复您的 PYTHONPATH,您可以按照以下方式取消设置:https://superuser.com/questions/949560/how-do-i-set-system-environment-variables-in-windows-10

【讨论】:

  • 是的,lightgbm.py 在我的路径中,它指的是 gbm 解决方案(不是 lightgbm 模块的一部分)。该名称不应该完全是“lightgbm”。我应该更仔细地检查痕迹。感谢 VirtualVDX、Tomasz 和 amanb。
  • 我遇到过几次。 :)
  • @RegiMathew 既然你已经接受了答案,你能释放赏金吗?
猜你喜欢
  • 2017-05-18
  • 2013-12-23
  • 2022-11-01
  • 2014-01-13
  • 2016-08-09
  • 2019-10-02
  • 2019-02-06
  • 2014-07-26
  • 1970-01-01
相关资源
最近更新 更多