[GeoNode-users] Encoding error on upload zipped shapefile on centos 7
Francesco Bartoli
xbartolone at gmail.com
Mon Jul 17 01:16:48 PDT 2017
Just for the record, the error described below is from a false cause. Despite the message from the traceback which confused me the problem was due to a lack of communication with postgresql. The missing configuration was the md5 authentication rather than ident
host all all 127.0.0.1/32 md5
has been added to the PR.
Hope this helps somebody for the future.
Francesco
Il giorno 12/lug/2017, alle ore 22:34, francesco bartoli <xbartolone at gmail.com> ha scritto:
> All,
>
> I'm facing a common error while uploading an archived shapefile. The file is the commonly used ne_50m_admin_0_countries.
> The error is well known also in django documentation and due to non ascii characters:
>
> https://docs.djangoproject.com/en/1.8/ref/unicode/#files
>
> Unfortunately the recommended solution from the django docs for deployments with apache and mod_wsgi
>
> https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/modwsgi/
>
> doesn't solve the issue in centos 7. The box has been created while reviewing the installation on that environment as per this PR https://github.com/GeoNode/geonode/pull/3168
>
> It can be easily reproduced by adding this view and route within geonode app:
>
> #my_views.py
> import locale
> import sys
> from django.http import HttpResponse
>
> def view_locale(request):
> loc_info = "getlocale: " + str(locale.getlocale()) + \
> "<br/>getdefaultlocale(): " + str(locale.getdefaultlocale()) + \
> "<br/>fs_encoding: " + str(sys.getfilesystemencoding()) + \
> "<br/>sys default encoding: " + str(sys.getdefaultencoding())
> return HttpResponse(loc_info)
>
> #urls.py
> ...
> url(r'^locale/$', 'geonode.my_views.view_locale'),
> ...
>
> Result is always this:
> getlocale: (None, None)
> getdefaultlocale(): ('en_US', 'UTF-8')
> fs_encoding: UTF-8
> sys default encoding: ascii
>
> Setting the following variables in /etc/sysconfig/httpd and restart as suggested
>
> export LANG="en_US.UTF-8"
> export LC_ALL="en_US.UTF-8"
>
> does not change anything in particular the system default encoding which is the reason why the upload is failing.
>
> Adding such variables to WSGIDaemonProcess:
>
> WSGIDaemonProcess geonode lang='en_US.UTF-8' locale='en_US.UTF-8' python-path=/home/geonode/geonode:/home/geonode/.venvs/geonode/lib/python2.7/site-packages user=apache threads=15 processes=2
>
> just affects the getlocale() function while default encoding is unaltered. The only way to affect it would be to add and enforce it:
>
> import sys
> reload(sys)
> sys.setdefaultencoding('utf-8')
>
> but this is strongly not recommended and discouraged. More here https://anonbadger.wordpress.com/2015/06/16/why-sys-setdefaultencoding-will-break-code/.
>
> Did anyone already encounter this kind of error? Actually I don't have a solution but for sure it's not a bug in geonode code base despite I did not figure out the real source.
>
> Any help and idea, how to overcome it, is welcome :)
>
> thx
> Francesco
>
> Sent from Nylas Mail, the best free email app for work
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/geonode-users/attachments/20170717/98430e30/attachment.html>
More information about the geonode-users
mailing list