Python 干刮;找不到XVFB“;Nginx&;Ubuntu服务器18.04
我需要一个关于干刮和XVFB的帮助。我在我的Flask应用程序中使用DrySrape从javascript页面进行web抓取。如果我使用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
python3 main.py
和app-configapp.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"
而且,这种状态也可能与您的用户组/用户权限有关