由于sys.argv [0]引起的属性错误,因为c中的'import tensorflow as tf'
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了由于sys.argv [0]引起的属性错误,因为c中的'import tensorflow as tf'相关的知识,希望对你有一定的参考价值。
我在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安装中也会发生此问题。
答案
我太蠢了!这很有用,因为tensorflow需要sys.argv。
int
main(int argc, char *argv[])
{
Py_SetProgramName(argv[0]); /* optional but recommended */
Py_Initialize();
PyRun_SimpleString("import sys
"
"sys.argv = ['']");
PyRun_SimpleString("import tensorflow as tf");
Py_Finalize();
return 0;
}
另一答案
我发现旧版本(1.4.0)存在此错误,但不包括新版本(如tensorflow == 1.13.1
),如果您可以将tensorflow
更新到最新版本,这可能是更好的解决方案。
以上是关于由于sys.argv [0]引起的属性错误,因为c中的'import tensorflow as tf'的主要内容,如果未能解决你的问题,请参考以下文章