pythonでアシスタントを実行するコードを使用する方法

Pythonコード実行アシスタントは、WebページでPython言語を実行できるツールです。 pythonオペレーティング環境は多くのチュートリアルでDOSを使用しているため、暗いインターフェイスは少し粗雑に見えます。そのため、このpythonコード実行アシスタントはideとしてリリースされています。

実際、アシスタントインターフェイスを実行しているpythonコードは、合格点と見なすことができます。ideを探している場合は、jupyterをお勧めします。 JupyterはANACONDAに統合されており、anacodaがインストールされている限り使用できます。

1、 この実行中のアシスタントを開くには、最初にlearning.pyをダウンロードします。見つからない場合は、次のコードをコピーして「learning.py」として保存します。エディターとしてsublimeまたはnotepad ++を使用します。

#! /usr/bin/envpython3
#- *- coding:utf-8-*-
r'''
learning.py
APython3tutorialfromhttp://www.liaoxuefeng.com
Usage:
python3learning.py
'''
importsys
defcheck_version():
v=sys.version_info
ifv.major==3andv.minor =4:
returnTrue
print('Yourcurrentpythonis%d.%d.PleaseusePython3.4.'%(v.major,v.minor))
returnFalse
ifnotcheck_version():exit(1)
importos,io,json,subprocess,tempfile
fromurllibimportparse
fromwsgiref.simple_serverimportmake_server
EXEC=sys.executable
PORT=39093
HOST='local.liaoxuefeng.com:%d'%PORT
TEMP=tempfile.mkdtemp(suffix='_py',prefix='learn_python_')
INDEX=0defmain():
httpd=make_server('127.0.0.1',PORT,application)print('ReadyforPythoncodeonport%d...'%PORT)
httpd.serve_forever()defget_name():
globalINDEX
INDEX=INDEX+1return'test_%d'%INDEX
defwrite_py(name,code):
fpath=os.path.join(TEMP,'%s.py'%name)withopen(fpath,'w',encoding='utf-8')asf:
f.write(code)print('Codewroteto:%s'%fpath)
returnfpath
defdecode(s):try:
returns.decode('utf-8')
exceptUnicodeDecodeError:
returns.decode('gbk')defapplication(environ,start_response):
host=environ.get('HTTP_HOST')
method=environ.get('REQUEST_METHOD')
path=environ.get('PATH_INFO')
ifmethod=='GET'andpath=='/':start_response('200OK',[('Content-Type','text/html')])return[b'<html <head <title LearningPython</title </head <body <formmethod="post"action="/run"<textareaname="code"style="width:90%;height:600px"</textarea <p <buttontype="submit" Run</button 
< /p </form </body </html ']
ifmethod=='GET'andpath=='/env':start_response('200OK',[('Content-Type','text/html')])
L=[b'<html <head <title ENV</title </head <body ']
fork,vinenviron.items():
p='<p %s=%s'%(k,str(v))
L.append(p.encode('utf-8'))
L.append(b'</html ')
returnL
ifhost!=HOSTormethod!='POST'orpath!='/run'ornotenviron.get('CONTENT_TYPE','').lower().startswith('application/x-www-form-urlencoded'):start_response('400BadRequest',[('Content-Type','application/json')])return[b'{"error":"bad_request"}']
s=environ['wsgi.input'].read(int(environ['CONTENT_LENGTH']))
qs=parse.parse_qs(s.decode('utf-8'))
ifnot'code'inqs:start_response('400BadRequest',[('Content-Type','application/json')])return[b'{"error":"invalid_params"}']
name=qs['name'][0]if'name'inqselseget_name()
code=qs['code'][0]
headers=[('Content-Type','application/json')]
origin=environ.get('HTTP_ORIGIN','')
iforigin.find('.liaoxuefeng.com')==-1:start_response('400BadRequest',[('Content-Type','application/json')])return[b'{"error":"invalid_origin"}']
headers.append(('Access-Control-Allow-Origin',origin))start_response('200OK',headers)
r=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))
exceptsubprocess.CalledProcessErrorase:
r=dict(error='Exception',output=decode(e.output))
exceptsubprocess.TimeoutExpiredase:
r=dict(error='Timeout',output='実行タイムアウト')
exceptsubprocess.CalledProcessErrorase:
r=dict(error='Error',output='実行エラー')print('Executedone.')return[json.dumps(r).encode('utf-8')]
if__name__=='__main__':main()

2、 メモ帳を使用して、次のコードを記述します。

@ echooff
pythonlearning.py
pause

「Run.bat」として保存

3、 「Run.bat」と「learning.py」を同じディレクトリに配置します。

4、 ダブルクリックして「Run.bat」を実行すると、黒いdosウィンドウがポップアップします。このウィンドウを閉じないでください。

5、 URLに対応するURLとポートを入力すると、プロセス全体が完了します。

ナレッジポイントの拡張:

Pythonオンラインコードアシスタント

#! /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():
v = 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 +1return'test_%d'% INDEX
def write_py(name,code):
fpath = os.path.join(TEMP,'%s.py'% name)withopen(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','text/html')])
L =[b'<html <head <title ENV</title </head <body ']for k,v in environ.items():
p ='<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','application/json')])return[b'{"error":"bad_request"}']
s = 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','application/json')])return[b'{"error":"invalid_params"}']
name = qs['name'][0]if'name'in qs elseget_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','application/json')])return[b'{"error":"invalid_origin"}']
headers.append(('Access-Control-Allow-Origin',origin))start_response('200 OK',headers)
r =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:
r =dict(error='Exception',output=decode(e.output))
except subprocess.TimeoutExpired as e:
r =dict(error='Timeout',output='実行タイムアウト')
except subprocess.CalledProcessError as e:
r =dict(error='Error',output='実行エラー')print('Execute done.')return[json.dumps(r).encode('utf-8')]if __name__ =='__main__':main()

これまで、Python用のコード実行アシスタントの使用方法に関するこの記事を紹介しました。関連するPythonコード実行アシスタントの使用コンテンツについては、ZaLou.Cnの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後、ZaLouをさらにサポートしていただければ幸いです。 Cn!

Recommended Posts

pythonでアシスタントを実行するコードを使用する方法
PythonでSQLiteを使用する方法
およびおよびまたはPythonでの使用方法
pythonでround関数を使用する方法
Pythonでzip関数を使用する方法
pythonでformat関数を使用する方法
pythonでコード自動プロンプトを設定する方法
pythonコードにコメントする方法
パイソンタプルの使い方
pythonウェブページコードの表示方法
ubuntuでhanlpを使用する方法
pythonスレッドプールの使用方法
Pythonで括弧を省略する方法
pythonでクラスを書く方法
pythonで数値をフィルタリングする方法
PythonでExcelを読む方法
pythonでエラーを表示する方法
pythonでreturnを書く方法
Pythonで変数を理解する方法
pythonで変数をクリアする方法
pythonでキャッシュファイルを削除する方法
pythonでnull値を表す方法
pythonでテキストファイルを保存する方法
PYTHONを使用してニュース記事をクロールする方法
pythonでwinプログラムを書く方法
pythonでid関数を実行する方法
pythonでエラーをカスタムキャッチする方法
pythonでtryステートメントを書く方法
Pythonでプライベート属性を定義する方法
Pythonでカスタムモジュールを追加する方法
Pythonでグローバル変数を理解する方法
インストールされているモジュールをpythonで表示する方法
さまざまなシステムでのPythonopenメソッド
pythonで辞書を並べ替える方法
pythonで背景音楽を追加する方法
pythonで相対パスを表す方法
UbuntuでTensorFlow使用環境を構成する方法
ubuntuサーバー環境にpythonをインストールする方法
Pythonゲームで重力をシミュレートする方法
Ubuntuシステムでdpkgコマンドを使用する方法
pythonでゲームを書く方法を教えてください
pythonでファイルとディレクトリを削除する方法
ダウンロードしたモジュールをpythonでインストールする方法
告白プログラムをpythonで書く方法
Pythonコードをまとめて正しく移動する方法
pythonで連続乗算計算を実行する方法
Pythonでのパッケージの導入を理解する方法
Puttyを使用してVirtualBoxにインストールされているubuntuにログインする方法
pythonで番号のリストを理解する方法
pythonで写真を自動的にダウンロードする方法の例
IEを添付ファイルとしてPythonで保存する方法
Ubuntu14.04でPython仮想環境を作成する方法
バグを見つけるためのPythonコード(2)
バグを見つけるためのPythonコード(7)
バグを見つけるためのPythonコード(4)
バグを見つけるためのPythonコード(3)
バグを見つけるためのPythonコード(9)
Pythonicコードの書き方
pythonをすばやく学ぶ方法
pythonプラグインをアンインストールする方法
バグを見つけるためのPythonコード(6)