Hi all, I read the warning that Python 3 support is higly experimental and that feedback is welcome. So here's a thing i came accross :-)
I'm writing a Flask application which used to work fine with python 3.4 and these packages: alembic==0.8.2 itsdangerous==0.24 blinker==1.4 Jinja2==2.8 click==5.1 Mako==1.0.2 configobj==5.0.6 Markdown==2.6.2 decorator==4.0.2 MarkupSafe==0.23 dominate==2.1.12 mod-wsgi==4.4.13 Flask==0.10.1 passlib==1.6.5 Flask-Admin==1.3.0 pbr==1.8.0 flask-appconfig==0.11.0 psycopg2==2.6.1 Flask-Bootstrap==3.3.5.6 py-bcrypt==0.4 Flask-Login==0.2.11 python-editor==0.4 Flask-Mail==0.9.1 six==1.9.0 Flask-Migrate==1.6.0 sqlacodegen==1.1.6 Flask-Principal==0.4.0 SQLAlchemy==1.0.8 Flask-Script==2.0.5 sqlalchemy-migrate==0.10.0 Flask-Security==1.7.4 sqlparse==0.1.16 Flask-SQLAlchemy==2.0 Tempita==0.5.2 Flask-WTF==0.12 virtualenv==1.11.6 inflect==0.2.5 Werkzeug==0.10.4 wheel==0.24.0 WTForms==2.0.2 I use a little start-script for developing which looks like this: #!/usr/bin/env python3 # -*- coding: utf-8 -*- from myapp import app app.debug = True print(__name__) if __name__ == '__main__': app.run(host='0.0.0.0',debug=True) Everything works fine. Now i wanted to use more up-to-date packages (but Python is still version 3.4): alembic==0.8.3 itsdangerous==0.24 blinker==1.4 Jinja2==2.8 click==5.1 Mako==1.0.3 configobj==5.0.6 Markdown==2.6.4 decorator==4.0.4 MarkupSafe==0.23 dominate==2.1.16 mod-wsgi==4.4.21 Flask==0.10.1 passlib==1.6.5 Flask-Admin==1.3.0 pbr==1.8.1 flask-appconfig==0.11.1 psycopg2==2.6.1 Flask-Bootstrap==3.3.5.7 py-bcrypt==0.4 Flask-Login==0.3.2 python-editor==0.4 Flask-Mail==0.9.1 six==1.10.0 Flask-Migrate==1.6.0 sqlacodegen==1.1.6 Flask-Principal==0.4.0 SQLAlchemy==1.0.9 Flask-Script==2.0.5 sqlalchemy-migrate==0.10.0 Flask-Security==1.7.4 sqlparse==0.1.18 Flask-SQLAlchemy==2.1 Tempita==0.5.2 Flask-WTF==0.12 virtualenv==13.1.2 inflect==0.2.5 visitor==0.1.2 Werkzeug==0.11 wheel==0.24.0 WTForms==2.0.2 When i run my start-script i get: /home/user/testenv2/lib/python3.4/site-packages/flask_sqlalchemy/__init__.py:800: UserWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True to suppress this warning. warnings.warn('SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True to suppress this warning.') __main__ * Restarting with stat /home/user/testenv2/lib/python3.4/site-packages/flask_sqlalchemy/__init__.py:800: UserWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True to suppress this warning. warnings.warn('SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True to suppress this warning.') __main__ * Debugger is active! Traceback (most recent call last): File "./run.py", line 11, in <module> app.run(host='0.0.0.0',debug=True) File "/home/user/testenv2/lib/python3.4/site-packages/flask/app.py", line 772, in run run_simple(host, port, self, **options) File "/home/user/testenv2/lib/python3.4/site-packages/werkzeug/serving.py", line 633, in run_simple application = DebuggedApplication(application, use_evalex) File "/home/user/testenv2/lib/python3.4/site-packages/werkzeug/debug/__init__.py", line 169, in __init__ if self.pin is None: File "/home/user/testenv2/lib/python3.4/site-packages/werkzeug/debug/__init__.py", line 179, in _get_pin self._pin, self._pin_cookie = get_pin_and_cookie_name(self.app) File "/home/user/testenv2/lib/python3.4/site-packages/werkzeug/debug/__init__.py", line 96, in get_pin_and_cookie_name h.update('cookiesalt') TypeError: Unicode-objects must be encoded before hashing So I changed the start-script to: if __name__ == '__main__': app.run(host="0.0.0.0".encode('utf8'),debug=True) Now I get this: /home/user/testenv2/lib/python3.4/site-packages/flask_sqlalchemy/__init__.py:800: UserWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True to suppress this warning. warnings.warn('SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True to suppress this warning.') __main__ Traceback (most recent call last): File "./run.py", line 11, in <module> app.run(host="0.0.0.0".encode('utf8'),debug=True) File "/home/user/testenv2/lib/python3.4/site-packages/flask/app.py", line 772, in run run_simple(host, port, self, **options) File "/home/user/testenv2/lib/python3.4/site-packages/werkzeug/serving.py", line 661, in run_simple address_family = select_ip_version(hostname, port) File "/home/user/testenv2/lib/python3.4/site-packages/werkzeug/serving.py", line 437, in select_ip_version if ':' in host and hasattr(socket, 'AF_INET6'): TypeError: 'str' does not support the buffer interface By the way: The machine runs both IPv4 and IPv6. It's not a problem for me to use the previous versions. But is there something wrong with select_ip_version in Werkzeug 0.11? Or am I making a mistake? Greetings, Heiko -- You received this message because you are subscribed to the Google Groups "pocoo-libs" group. To unsubscribe from this group and stop receiving emails from it, send an email to pocoo-libs+unsubscr...@googlegroups.com. To post to this group, send email to pocoo-libs@googlegroups.com. Visit this group at http://groups.google.com/group/pocoo-libs. For more options, visit https://groups.google.com/d/optout.