Python TypeError:需要一个整数(获取类型str)

Python TypeError:需要一个整数(获取类型str),python,flask,python-3.4,flask-wtforms,python-babel,Python,Flask,Python 3.4,Flask Wtforms,Python Babel,我不熟悉Python和Flask。我正在努力完成本教程: 现在我遇到了一个无法修复的错误。我重新安装了Python3.4.3并重新安装了虚拟环境,我直接从教程中复制了代码,以确保键入时没有出错,但仍然没有任何效果 init.py from flask import Flask app = Flask(__name__) app.config.from_object('config') from app import views views.py from flask import rend

我不熟悉Python和Flask。我正在努力完成本教程: 现在我遇到了一个无法修复的错误。我重新安装了Python3.4.3并重新安装了虚拟环境,我直接从教程中复制了代码,以确保键入时没有出错,但仍然没有任何效果

init.py

from flask import Flask

app = Flask(__name__)
app.config.from_object('config')

from app import views
views.py

from flask import render_template, flash, redirect
from app import app
from .forms import LoginForm

@app.route('/')
@app.route('/index')
def index():
    user = {'nickname': 'Miguel'}
    posts = [
        {
            'author': {'nickname': 'John'},
            'body': 'Beautiful day in Portland!'
        },
        {
            'author': {'nickname': 'Susan'},
            'body': 'The Avengers movie was so cool!'
        }
    ]
    return render_template("index.html",
                           title='Home',
                           user=user,
                           posts=posts)

@app.route('/login', methods=['GET', 'POST'])
def login():
    form = LoginForm()
    return render_template('login.html',
                           title='Sign In',
                           form=form)
forms.py

from flask.ext.wtf import Form
from wtforms import StringField, BooleanField
from wtforms.validators import DataRequired

class LoginForm(Form):
    openid = StringField('openid', validators=[DataRequired()])
    remember_me = BooleanField('remember_me', default=False)
run.py

from app import app
app.run(debug=True)
错误:

(flask) G:\microblog>python run.py
Traceback (most recent call last):
  File "run.py", line 1, in <module>
    from app import app
  File "G:\microblog\app\__init__.py", line 6, in <module>
    from app import views
  File "G:\microblog\app\views.py", line 3, in <module>
    from .forms import LoginForm
  File "G:\microblog\app\forms.py", line 1, in <module>
    from flask.ext.wtf import Form
  File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
  File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 1191, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 1161, in _load_backward_compatible
  File "G:\microblog\flask\lib\site-packages\flask\exthook.py", line 62, in load_module
    __import__(realname)
  File "G:\microblog\flask\lib\site-packages\flask_wtf\__init__.py", line 15, in <module>
    from .form import Form
  File "G:\microblog\flask\lib\site-packages\flask_wtf\form.py", line 15, in <module>
    from .i18n import translations
  File "G:\microblog\flask\lib\site-packages\flask_wtf\i18n.py", line 12, in <module>
    from flask_babel import get_locale
  File "G:\microblog\flask\lib\site-packages\flask_babel\__init__.py", line 21, in <module>
    from babel import dates, numbers, support, Locale
  File "G:\microblog\flask\lib\site-packages\babel\dates.py", line 28, in <module>
    from babel.util import UTC, LOCALTZ
  File "G:\microblog\flask\lib\site-packages\babel\util.py", line 278, in <module>
    from babel import localtime
  File "G:\microblog\flask\lib\site-packages\babel\localtime\__init__.py", line 21, in <module>
    from babel.localtime._win32 import _get_localzone
  File "G:\microblog\flask\lib\site-packages\babel\localtime\_win32.py", line 18, in <module>
    tz_names = get_global('windows_zone_mapping')
  File "G:\microblog\flask\lib\site-packages\babel\core.py", line 58, in get_global
    _global_data = pickle.load(fileobj)
TypeError: an integer is required (got type str)
(flask)G:\microblog>python run.py
回溯(最近一次呼叫最后一次):
文件“run.py”,第1行,在
从应用程序导入应用程序
文件“G:\microblog\app\\ uuuuu init\uuuuuu.py”,第6行,在
从应用程序导入视图
文件“G:\microblog\app\views.py”,第3行,在
from.forms导入LoginForm
文件“G:\microblog\app\forms.py”,第1行,在
来自flask.ext.wtf导入表单
文件“”,第2237行,在“查找”和“加载”中
文件“”,第2226行,在“查找”和“加载”中解锁
文件“”,第1191行,在“加载”中
文件“”,第1161行,可向后加载
文件“G:\microblog\flask\lib\site packages\flask\exthook.py”,第62行,在load\ U模块中
__导入(实名)
文件“G:\microblog\flask\lib\site packages\flask\u wtf\\uuuu init\uuuuu.py”,第15行,在
from.form导入表单
文件“G:\microblog\flask\lib\site packages\flask\u wtf\form.py”,第15行,在
从.i18n导入翻译
文件“G:\microblog\flask\lib\site packages\flask\u wtf\i18n.py”,第12行,在
从flask_babel导入获取语言环境
文件“G:\microblog\flask\lib\site packages\flask\u babel\\uuuu init\uuuuu.py”,第21行,在
从babel导入日期、编号、支持、区域设置
文件“G:\microblog\flask\lib\site packages\babel\dates.py”,第28行,在
从babel.util导入UTC、LOCALTZ
文件“G:\microblog\flask\lib\site packages\babel\util.py”,第278行,在
从babel导入本地时间
文件“G:\microblog\flask\lib\site packages\babel\localtime\\uuuu init\uuuu.py”,第21行,在
从babel.localtime.\u win32导入\u获取\u localzone
文件“G:\microblog\flask\lib\site packages\babel\localtime\\u win32.py”,第18行,在
tz\u names=get\u global('windows\u zone\u mapping'))
文件“G:\microblog\flask\lib\site packages\babel\core.py”,第58行,在get\U global中
_全局_data=pickle.load(fileobj)
TypeError:需要一个整数(获取类型str)

我很沮丧,因为我无法继续学习教程,所以欢迎提供任何帮助。

Python3.4不支持Babel,请安装Python3.3或2.7.10,这样就可以了


-根据

的评论,巴贝尔的旧版本不适用于3.4。请改为安装此更新:

pip3.4.exe安装git+


它与Python3.4配合使用,因此您不再需要降级Python。

babel
在Python3.4上不受支持,请尝试Python3.3或(我的建议)2.7.10;另外,无需在标题中添加
[Python][Flask]
,标签系统有助于对帖子进行分类。我已经对Python 2.7.10进行了更改,现在一切正常。