Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 干刮;找不到XVFB“;Nginx&;Ubuntu服务器18.04_Python_Linux_Nginx_Web Scraping_Server - Fatal编程技术网

Python 干刮;找不到XVFB“;Nginx&;Ubuntu服务器18.04

Python 干刮;找不到XVFB“;Nginx&;Ubuntu服务器18.04,python,linux,nginx,web-scraping,server,Python,Linux,Nginx,Web Scraping,Server,我需要一个关于干刮和XVFB的帮助。我在我的Flask应用程序中使用DrySrape从javascript页面进行web抓取。如果我使用python3 main.py和app-configapp.run(host=“0.0.0.0”)在端口5000上一切都很好。但我必须使用Nginx和uWSGI在域上为我的应用程序提供服务。因此,当我使用Nginx为应用程序提供服务时,我遇到了这个错误 Sep 30 19:39:16 /address\ uwsgi[959]: File "./sc

我需要一个关于干刮和XVFB的帮助。我在我的Flask应用程序中使用DrySrape从javascript页面进行web抓取。如果我使用
python3 main.py
和app-config
app.run(host=“0.0.0.0”)
在端口5000上一切都很好。但我必须使用Nginx和uWSGI在域上为我的应用程序提供服务。因此,当我使用Nginx为应用程序提供服务时,我遇到了这个错误

Sep 30 19:39:16 /address\ uwsgi[959]:   File "./scrape_manager.py", line 10, in get_details
Sep 30 19:39:16 /address\ uwsgi[959]:     dryscrape.start_xvfb()
Sep 30 19:39:16 /address\ uwsgi[959]:   File "/home/user/app/venv/lib/python3.6/site-packages/dryscrape/xvfb.py", line 8, in start_xvfb
Sep 30 19:39:16 /address\ uwsgi[959]:     xvfb = Xvfb()
Sep 30 19:39:16 /address\ uwsgi[959]:   File "/home/user/app/venv/lib/python3.6/site-packages/xvfbwrapper.py", line 41, in __init__
Sep 30 19:39:16 /address\ uwsgi[959]:     raise EnvironmentError(msg)
我该怎么做才能解决这个问题


编辑:我找到了解决方案

问题出在Nginx的服务文件中

应用程序服务

[Unit]
Description=uWSGI instance to serve app
After=network.target

[Service]
User=user
Group=www-data
WorkingDirectory=/home/user/app/app
Environment="PATH=/home/user/app/venv/bin"
ExecStart=/home/user/app/venv/bin/uwsgi --ini /home/user/app/app/app.ini

[Install]
WantedBy=multi-user.target
实际上,失败的根源是环境路径,它只是一个,而且是应用程序的虚拟环境。但是Drysrape需要从/bin或/usr/bin访问XVFB(检查它,它存在于哪里)。通过这种方式,我必须用这两种方法扩展环境路径,以尝试并添加
/usr/bin
/bin

[Unit]
Description=uWSGI instance to serve app
After=network.target

[Service]
User=user
Group=www-data
WorkingDirectory=/home/user/app/app
Environment="PATH=/home/user/app/venv/bin:/usr/bin:/bin"
ExecStart=/home/user/app/venv/bin/uwsgi --ini /home/user/app/app/app.ini

[Install]
WantedBy=multi-user.target
这是正确的服务文件,但其中一个(
/bin
/usr/bin
)可能是不必要的,因此您必须检查执行XVFB文件的路径。如果不确定,则添加/usr/bin和/bin;它可以工作,但如果您能够找到路径,请只添加一个如下所示的路径

Environment="PATH=/home/user/app/venv/bin:/usr/bin"
而且,这种状态也可能与您的用户组/用户权限有关