Discuss / Python / 直接复制的代码python交互环境运行OK,cmd命令行运行Error

直接复制的代码python交互环境运行OK,cmd命令行运行Error

Topic source
C:\Users\Administrator\Desktop\python file>python flaskapp2.py
Traceback (most recent call last):
  File "flaskapp2.py", line 1, in <module>
    from flask import Flask
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\sit
e-packages\flask\__init__.py", line 19, in <module>
    from jinja2 import Markup, escape
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\sit
e-packages\jinja2\__init__.py", line 33, in <module>
    from jinja2.environment import Environment, Template
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\sit
e-packages\jinja2\environment.py", line 16, in <module>
    from jinja2.defaults import BLOCK_START_STRING, \
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\sit
e-packages\jinja2\defaults.py", line 32, in <module>
    from jinja2.tests import TESTS as DEFAULT_TESTS
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\sit
e-packages\jinja2\tests.py", line 15, in <module>
    import decimal
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36-32\lib\dec
imal.py", line 3, in <module>
    from _decimal import *
AttributeError: module 'numbers' has no attribute 'Number'
In [123]: from flask import Flask

In [124]: app = Flask(__name__)
     ...:
     ...: @app.route('/', methods=['GET', 'POST'])
     ...: def home():
     ...:     return '<h1>Home</h1>'
     ...:
     ...: @app.route('/signin', methods=['GET'])
     ...: def signin_form():
     ...:     return '''<form action="/signin" method="post">
     ...:               <p><input name="username"></p>
     ...:               <p><input name="password" type="password"></p>
     ...:               <p><button type="submit">Sign In</button></p>
     ...:               </form>'''
     ...:
     ...: @app.route('/signin', methods=['POST'])
     ...: def signin():
     ...:     # 需要从request对象读取表单内容:
     ...:     if request.form['username']=='admin' and request.form['password']
     ...: =='password':
     ...:         return '<h3>Hello, admin!</h3>'
     ...:     return '<h3>Bad username or password.</h3>'
     ...:
     ...: if __name__ == '__main__':
     ...:     app.run()
     ...:
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

同样的复制的文中的代码,python交互环境中是成功的,而命令行cmd的方式是失败的,这是怎么回事呢?

我也遇到过这个问题,发现是因为我电脑上装了两个版本的python,本来自己装了个3.5的,后来下载pychome它给我装了个3.6的,我把3.6的卸载了就正常了。

如果用别的机器访问的话.把最下面的app.run(host=你机器的IP地址).


  • 1

Reply