我试图托管使用tensorflow库的flask API。我使用CUDA和cudnn库安装了tensorflow gpu库。我使用以下命令手动检查,该工具运行正常。
/captcha/env/bin/gunicorn captcha:app -b 0.0.0.0:5124 -k gevent --worker-connections 1000
但是当我添加这个systemd服务时我得到一个tensorflow gpu错误
systemd服务
[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target
[Service]
PIDFile=/run/gunicorn/pid
User=root
Group=root
WorkingDirectory=/captcha/env
ExecStart=/captcha/env/bin/gunicorn captcha:app -b 0.0.0.0:5124 -k gevent --worker-connections 1000
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
日志文件中的错误文本:
无法加载本机TensorFlow运行时。
请参阅 https://www.tensorflow.org/install/install_sources#common_installation_problems
出于一些常见原因和解决方案。包括整个堆栈跟踪 请求帮助时出现此错误消息。
有人能指出我在哪里做错了吗?
答案 0 :(得分:0)
我正在使用PM2来管理tensorflow-flask api进程。
我使用以下命令创建一个shell文件作为内容。
pm2 start run.sh
答案 1 :(得分:0)
Systemd似乎剥离了所有环境变量,并且TensorFlow需要知道在哪里可以找到Cuda。没有LD_LIBRARY_PATH,它将失败。
可能有几种方法可以做到这一点,但这对我有用。
[Service]
Environment=LD_LIBRARY_PATH=/usr/local/cuda/lib64
ExecStart=/path/to/your/app
...