python代码运行助手怎么打开

python代码运行助手是能在网页上运行python语言的工具。因为python的运行环境在很多教程里都是用dos的,黑乎乎的界面看的有点简陋,所以出了这python代码运行助手,作为ide。

实际上,python代码运行助手界面只能算及格分,如果要找ide,推荐使用jupyter。jupyter被集成到ANACONDA里,只要安装了anacoda就能使用了。

如何快速搭建一个...
视频来自: 优酷

回到这个问题:

1、要打开这运行助手首先要下载一个learning.py,如果找不到可以复制如下代码另存为“learning.py”,编辑器用sublime、或者notepad++。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
 
r '''
learning.py
 
A Python 3 tutorial from http://www.liaoxuefeng.com
 
Usage:
 
python3 learning.py
'''
 
import  sys
 
def  check_version():
     =  sys.version_info
     if  v.major  = =  3  and  v.minor > =  4 :
         return  True
     print ( 'Your current python is %d.%d. Please use Python 3.4.'  %  (v.major, v.minor))
     return  False
 
if  not  check_version():
     exit( 1 )
 
import  os, io, json, subprocess, tempfile
from  urllib  import  parse
from  wsgiref.simple_server  import  make_server
 
EXEC  =  sys.executable
PORT  =  39093
HOST  =  'local.liaoxuefeng.com:%d'  %  PORT
TEMP  =  tempfile.mkdtemp(suffix = '_py' , prefix = 'learn_python_' )
INDEX  =  0
 
def  main():
     httpd  =  make_server( '127.0.0.1' , PORT, application)
     print ( 'Ready for Python code on port %d...'  %  PORT)
     httpd.serve_forever()
 
def  get_name():
     global  INDEX
     INDEX  =  INDEX  +  1
     return  'test_%d'  %  INDEX
 
def  write_py(name, code):
     fpath  =  os.path.join(TEMP,  '%s.py'  %  name)
     with  open (fpath,  'w' , encoding = 'utf-8' ) as f:
         f.write(code)
     print ( 'Code wrote to: %s'  %  fpath)
     return  fpath
 
def  decode(s):
     try :
         return  s.decode( 'utf-8' )
     except  UnicodeDecodeError:
         return  s.decode( 'gbk' )
 
def  application(environ, start_response):
     host  =  environ.get( 'HTTP_HOST' )
     method  =  environ.get( 'REQUEST_METHOD' )
     path  =  environ.get( 'PATH_INFO' )
     if  method  = =  'GET'  and  path  = =  '/' :
         start_response( '200 OK' , [( 'Content-Type' 'text/html' )])
         return  [b '<html><head><title>Learning Python</title></head><body><form method="post" action="/run"><textarea name="code" style="width:90%;height: 600px"></textarea><p><button type="submit">Run</button></p></form></body></html>' ]
     if  method  = =  'GET'  and  path  = =  '/env' :
         start_response( '200 OK' , [( 'Content-Type' 'text/html' )])
         =  [b '<html><head><title>ENV</title></head><body>' ]
         for  k, v  in  environ.items():
             =  '<p>%s = %s'  %  (k,  str (v))
             L.append(p.encode( 'utf-8' ))
         L.append(b '</html>' )
         return  L
     if  host ! =  HOST  or  method ! =  'POST'  or  path ! =  '/run'  or  not  environ.get( 'CONTENT_TYPE' , ' ').lower().startswith(' application / x - www - form - urlencoded'):
         start_response( '400 Bad Request' , [( 'Content-Type' 'application/json' )])
         return  [b '{"error":"bad_request"}' ]
     =  environ[ 'wsgi.input' ].read( int (environ[ 'CONTENT_LENGTH' ]))
     qs  =  parse.parse_qs(s.decode( 'utf-8' ))
     if  not  'code'  in  qs:
         start_response( '400 Bad Request' , [( 'Content-Type' 'application/json' )])
         return  [b '{"error":"invalid_params"}' ]
     name  =  qs[ 'name' ][ 0 if  'name'  in  qs  else  get_name()
     code  =  qs[ 'code' ][ 0 ]
     headers  =  [( 'Content-Type' 'application/json' )]
     origin  =  environ.get( 'HTTP_ORIGIN' , '')
     if  origin.find( '.liaoxuefeng.com' = =  - 1 :
         start_response( '400 Bad Request' , [( 'Content-Type' 'application/json' )])
         return  [b '{"error":"invalid_origin"}' ]
     headers.append(( 'Access-Control-Allow-Origin' , origin))
     start_response( '200 OK' , headers)
     =  dict ()
     try :
         fpath  =  write_py(name, code)
         print ( 'Execute: %s %s'  %  (EXEC, fpath))
         r[ 'output' =  decode(subprocess.check_output([EXEC, fpath], stderr = subprocess.STDOUT, timeout = 5 ))
     except  subprocess.CalledProcessError as e:
         =  dict (error = 'Exception' , output = decode(e.output))
     except  subprocess.TimeoutExpired as e:
         =  dict (error = 'Timeout' , output = '执行超时' )
     except  subprocess.CalledProcessError as e:
         =  dict (error = 'Error' , output = '执行错误' )
     print ( 'Execute done.' )
     return  [json.dumps(r).encode( 'utf-8' )]
 
if  __name__  = =  '__main__' :
     main()

2,再用一个记事本写如下的代码:

1
2
3
@ echo  off
python learning.py
pause

另存为‘运行.bat’

3、把“运行.bat”和“learning.py”放到同一目录下,

4、双击运行“运行.bat",之后会弹出黑色的dos窗口,这个窗口不要关闭。

5、输入网址对应的网址和端口,整个过程就完成了。

  • 8
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值