【问题标题】:AttributeError due to sys.argv[0] for 'import tensorflow as tf' inside c由于 sys.argv[0] 导致 c 中的 'import tensorflow as tf' 导致的 AttributeError
【发布时间】:2016-12-25 18:32:18
【问题描述】:

我在 Ubuntu14.4 上运行的 c 文件中嵌入了 python2.7/python3.4m 代码。 python代码是导入tensorflow,当它失败时。

#include <stdio.h>
#include <Python.h>

int
main(int argc, char *argv[])
{
  Py_SetProgramName(argv[0]);  /* optional but recommended */
  Py_Initialize();
  PyRun_SimpleString("import tensorflow as tf");
  Py_Finalize();
  return 0;
} 

这给出以下输出:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/__init__.py", line 24, in <module>
    from tensorflow.python import *
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/__init__.py", line 100, in <module>
    from tensorflow.python.platform import app
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 23, in <module>
    from tensorflow.python.platform import flags
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/flags.py", line 25, in <module>
    _global_parser = _argparse.ArgumentParser()
  File "/usr/lib/python2.7/argparse.py", line 1575, in __init__
    prog = _os.path.basename(_sys.argv[0])
AttributeError: 'module' object has no attribute 'argv'

对此的任何帮助将不胜感激。我使用 cmake 和 bazel 编译它。

即使在 virtualenv 安装中也会发生此问题。

【问题讨论】:

    标签: python c tensorflow


    【解决方案1】:

    我太傻了!很好,因为 tensorflow 需要 sys.argv。

    int
    main(int argc, char *argv[])
    {
      Py_SetProgramName(argv[0]);  /* optional but recommended */
      Py_Initialize();
      PyRun_SimpleString("import sys\n"
                         "sys.argv = ['']");
      PyRun_SimpleString("import tensorflow as tf");
      Py_Finalize();
      return 0;
    } 
    

    【讨论】:

      【解决方案2】:

      我发现旧版本(1.4.0)存在这个错误,但没有包含新版本(如tensorflow == 1.13.1),如果您可以将tensorflow更新到最新版本,那可能是一个更好的解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-04
        • 1970-01-01
        • 1970-01-01
        • 2018-12-22
        • 2022-11-10
        • 2020-09-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多