Atom-WSL-PyCharm相関図その2

190625

Atom-WSL-PyCharm相関図その2

2019/06/25
Atom
① 印刷できない。
② Flaskがない。
③ データベースがない。
④ Moduleの管理が難しい。
⑤ Pythonの各属性を色表示できる。
⑥ JupyterのModuleを引き込むことができる。
⑦ Hydrogenでstep by stepのデバッグができる。(◎)
⑧ Windows特にExplorerが生で使える。
⑨ Demo Programが多数存在する。(◎)
⑩ 「elif」「else」がエラーになるバグがある。
⑪ Pycharmとモジュールの共存できる。

WSL(Windows Subsystem for Linux)
① 印刷できない。
② データベースがない。
③ Jupyterのmoduleを引き込むことができない。
④ Step by stepのデバッグができない。
⑤ Windowsとのやり取りがUSB経由である。
⑥ Pythonの各属性を色表示できる。(◎)
⑦ Flask環境下でデバッグできる。(◎)
⑧ Linuxのコマンドがじかに実行できる。(◎)
⑨ Moduleの管理が比較的しやすい。

PyCharm
① Step by stepのデバッグができない。
② 有料でないとSQLite3(DB)が使えない。
③ 慣れていない。
④ Linuxのコマンドが使えない。
⑤ Jupyter-notebookとの連携がとりにくい。
⑥ 有料でデータベースが使える。(◎)
⑦ 印刷ができる。(◎)
⑧ Atom下のモジュールと共存できる。(◎)
⑨ インタラクティブシェルで実行できる。「Python console」(◎)
⑩ Atomより貧弱であるが属性の色表示がされる。
⑪ パッケージの追加が簡単。

1. sinカーブなど: Atom Hydrogen(Shift + Enter)・PyCharm(Run) 可
2. Image: Atom Hydrogen・PyCharm 可
3. turtle: Atom(Alt + R)・PyCharm 可
4. pandas,numpy: Atom Hydrogen 可
5. flask demoxx: WSL(Ubuntu)・PyCharm 可

以上

↑人気ブログランキングに参加しています。よろしければ1票を!

メニューの追加(Python,lions,NHK超AI入門,Linux,WSL,レジストリ,システムジェネレーションetc.)

メニューの追加(Python,lions,NHK超AI入門,Linux,WSL,レジストリ,システムジェネレーション,Atom,Emacs,markdown,Python,Flask)

「野生の証明」のメニューに「Lions」、「展覧会」、「食事」、「NHK超AI入門」、「Linux」、「WSL」(Windows Subsystem for Linux)、「レジストリ」、「システムジェネレーション」、「Atom」、「Emacs」、「markdown」、「Python」を追加した。
アイキャッチ画像は「Linux」、「WSL」のパスを示している。
①「活動」→「趣味」→「lions」
①-1「活動」→「趣味」→「展覧会」
①-2「活動」→「趣味」→「食事」
②「コンピューター」→「ソフトウェア」→「Deep Learning」→「NHK超AI入門」
③「コンピューター」→「ソフトウェア」→「オペレーティングシステム」→「Linux」(→「Flask」)
④「コンピューター」→「ソフトウェア」→「オペレーティングシステム」→「Windows10」→「WSL」
⑤「コンピューター」→「ソフトウェア」→「オペレーティングシステム」→「Windows10」→「レジストリ」
⑥「コンピューター」→「ソフトウェア」→「システムジェネレーション」
⑦「コンピューター」→「ソフトウェア」→「Editor」→「Atom」
⑧「コンピューター」→「ソフトウェア」→「Editor」→「Emacs」
⑨「コンピューター」→「ソフトウェア」→「Editor」→「markdown」
⑩「コンピューター」→「ソフトウェア」→「言語」→「その他の言語」→「Python(Object指向)」→「Python」

↑人気ブログランキングに参加しています。よろしければ1票を!

外付けHDDにUbuntu(Linux)をインストールする(まとめ)

Native Linux用Applicationを使用したい場合などの特別な理由がない限りWSLの使用をお勧めする。

190523

外付けHDDにUbuntu(Linux)をインストールする(まとめ)

最近当ブログに外付けハードディスクを使ってUbuntu(Linux)をしたいがどうだろうという目的で訪れるユーザーが増えている。結論から言うと否である。

① 外付けハードディスクにUbuntuを合計2回インストールした。
② また古いWindows M/CにLinuxを1回インストールした。
③ 現在はBusiness用PCにWSL(Windows Subsystem for Linux)をインストールして使っている。
④ 外付けハードディスクは外国製と国内製の映像録画用HDDで使用した。
⑤ ④はいずれも2~3週間でBoot Errorになった。
⑥ これにより映像用外付けハードディスクはLinuxM/Cとしては不適であるとの結論である。
⑦ ②は1ヶ月半ほど稼働したがそののちBoot Errorを起こした。
⑧ ⑥⑦よりLinuxをインストールすると同じ個所を参照しトラブルを起こしやすい。
⑨ WSLを使ってLinuxを経験したいのなら中古PCで十分との結論に達した。去年の10月インストールして以来現在(5月)まで順調に稼働している。
⑩ Native Linux用Applicationを使用したい場合などの特別な理由がない限りWSLの使用をお勧めする。

以上

↑人気ブログランキングに参加しています。よろしければ1票を!

Jupyternotebook-ModuleNotFoundについて

そこでググってみたらバージョン2と3を両方入れている場合はバージョン3のほうはpip3を使うと示していたのでpip3でnumpy,matplotlib etcをインストールしてみた。(Anaconda3でインストールしていると両方入ってしまう)

WSL Jupyternotebook-ModuleNotFoundについて

AI関連開発を再開した。

① Python3.6はコマンドプロンプトのバーチャルエンバイロメントで動いている。
② これは(>atom .)で起動する。
③ 上記はWSLでHydrogenをインストールしてもShift+Enterで動かないため回避策で行った。
④ コマンドプロンプトでは
・>python -m venv hydrovenv
・>hydrovenv\scripts\activate
・>pip freeze
・>atom .
で行う。
こののちAtomのOpen Projectをクリックして求めるPath上のフォルダを指定する。
⑤ これでShift+Enterでmatplotlibなどをインストールしている場合、図形などを描くことができる。
⑥ (hydrovenv)C:\Users\xxxxx>pip install Numpyなどでライブラリに入れるモジュールをインストールする。
⑦ しかしWSLでJupyternotebookを走らせなければならなかった。
⑧ プログラムからNumpy,matplotlib,Scipyなどを呼び出すとモジュール・ノットファウンドになってしまう。
⑨ 最初はWindowsの環境変数の問題だと思った。
⑩ 次に
・>pip list | grep numpy
をやったらnumpy(1.16.3)と表示された。(numpyが入っている証拠)
・>pip show numpyとやってみた。
/home/xxxxx/.local/lib/python2.7/site-packages
と表示された。(python2.7に入っていることを示す証拠)Python3を動かして、
・>>>import sys
・>>>import pprint
・>>>pprint.pprint(sys.path)
をやってみた。
⑪ バージョン2が入っていたので
・$ cp -r python2.7 pythonbu2.7(python2.7を無効化)
・Module not foundの現象は変わらなかった。
⑫ そこでググってみたらバージョン2と3を両方入れている場合はバージョン3のほうはpip3を使うと示していたのでpip3でnumpy,matplotlib etcをインストールしてみた。(Anaconda3でインストールしていると両方入ってしまう)(結局python3の方にはもともとnumpyなどが入っていなかったことになる)
⑬ みごとJupyter-notebookは稼働した。
⑭ No module named errorは解決された。
以上

↑人気ブログランキングに参加しています。よろしければ1票を!

Atom-WSL-PyCharm相関図

Atom-WSL-PyCharm相関図を簡単にまとめましたので中間報告的に記述します。(長短含めて)

Atom-WSL-PyCharm相関図

2019/01/06
Atom
① 印刷できない。
② Flaskがない。
③ データベースがない。
④ Moduleの管理が難しい。
⑤ Pythonの各属性を色表示できる。
⑥ JupyterのModuleを引き込むことができる。
⑦ Hydrogenでstep by stepのデバッグができる。(◎)
⑧ Windows特にExplorerが生で使える。
⑨ Demo Programが多数存在する。(◎)

WSL(Windows Subsystem for Linux)
① 印刷できない。
② データベースがない。
③ Jupyterのmoduleを引き込むことができない。
④ Step by stepのデバッグができない。
⑤ Windowsとのやり取りがUSB経由である。
⑥ Pythonの各属性を色表示できる。(◎)
⑦ Flask環境下でデバッグできる。(◎)
⑧ Linuxのコマンドがじかに実行できる。(◎)
⑨ Moduleの管理が比較的しやすい。

PyCharm
① Step by stepのデバッグができない。
② 有料でないとSQLite3(DB)が使えない。
③ 慣れていない。
④ Linuxのコマンドが使えない。
⑤ Jupyterとの連携がとりにくい。
⑥ 有料でデータベースが使える。(◎)
⑦ 印刷ができる。(◎)

以上

↑人気ブログランキングに参加しています。よろしければ1票を!

Flaskを使って今まで学習したこと

今まで学習したこと

2019/01/03

① FlaskをWSLにインストールする
② ディレクトリはflask(/)、templates、static、css、images、jsからなる。
③ Python Programの中で「app.route(‘/’)改行def index()」でデコレータ。
④ render_templateをimportすることでrender_template(‘demoxx.html’, name = ‘吉田’)をコーディングすることでnameパラメータによりhtmlファイルにデータを渡せる。
⑤ Python Programの先頭付近でapp = Flask(__name__)、最後にif __name__ == “__main__”改行、app.run(debug=True)を指定する。
⑥ demoxx.htmlの最後ででjsを呼び出せる。
⑦ js内のalertでdialogMSGを表示させられる。
⑧ requestのimportでwho = request.args.get(“who”)をコーディングすることによりADR領域に/?who=xxxxxxをタイプインすることで.pyにて受け取れる。
⑨ return “yyyy”で画面にyyyyを表示できる。return whoでwhoの内容が表示される。
⑩ htmlの中で{% if name %}のように書くことで制御文が構成できる。{% else %}等。
⑪ ADR領域にパラメータが複数ある時には&をデリミターにすることができる。
⑫ url_for、redirectを使ってreturn redirect(url_for(“func”))とコーディングすることにより(‘/’)で入ってきてもfuncにリダイレクトできる。
⑬ html= “””と“”“ return htmlでPythonプログラムの中にhtmlファイルを含めることができる。
⑭ formの中にtype=”text”とすると入力がテキスト形式、passwordとすると入力が伏字になって「・・・」のようになって画面には表示されない。placeholder=”名前”のようにすると入力マスに薄い字で「名前」と表示される。
⑮ Python Programの中でcheckxx.htmlを呼びmy_email = request.form[“emel”]としreturn render_template(‘indexxx.html’,age=my_age…,eml=my_email,…)とすればデータの入力および結果の表示ができる。
⑯ 二次元ディクショナリのコーディングはif user_data[i][“pass”] == passwdのようにする。[i]のiはループカウントになる。
⑰ session管理はdemo29.py(demo28.py)のようにすればよい。

以上

↑人気ブログランキングに参加しています。よろしければ1票を!

セッションの管理

SQLが手に入らないのでセッションの管理コードだけでも埋め込もうと、丸2日間かかって仕上げた。

セッションの管理

SQLが手に入らないのでセッションの管理コードだけでも埋め込もうと、丸2日間かかって仕上げた。
一番苦労したのは「Method Not Allowed」になってしまうことだった。
トラッパーやトレーサじみたコードを入れてアイソレートしていった。
テストした項目は
①login成功・失敗
②logout
③ルートへのジャンプ
④login後の他HTMLへのジャンプ。
⑤demo28.pyからのパラメータの引継ぎ
⑥login中の各振る舞い
⑦logout中のふるまい
など多岐にわたってテストした。

/login

login成功で’/’入力

データの引き渡し

logoutの状態で「/」を入力

demo28.py関連プログラム

#!/usr/bin/python3
# -*- coding: utf-8 -*-
#demo28.py sessin managed
from flask import Flask, redirect, request, render_template, url_for, session

app = Flask(__name__)

@app.route(‘/login’, methods=[‘GET’, ‘POST’])
def login():
・・if request.method == ‘POST’:
・・・・session[‘username’] = request.form[‘username’]
・・・・return redirect(url_for(‘index’))
・・return render_template(‘check28.html’)

@app.route(‘/reset’, methods=[‘GET’, ‘POST’])
def reset():
・・session[‘username’] = ‘zako’
・・return render_template(‘check28.html’)

@app.route(‘/’)
def func():
・・if ‘username’ in session:
・・・・html = render_template(‘demo03.html’,name = str(session[‘username’]))
・・・・return html
・・return ‘You are not logged in’

@app.route(‘/check’, methods=[‘GET’, ‘POST’])
def check():
・・if request.method == ‘POST’:
・・・・session[‘username’] = request.form[‘username’]
・・・・return redirect(url_for(‘func’))
・・return render_template(‘check28.html’)

@app.route(‘/’,methods=[‘POST’])
def index():

・・success = False
・・name = request.form[“username”]
・・passwd = request.form[“pass”]
・・my_message = “「セッション処理のプログラムはどうでしたか?」”

・・user_data = [{“id”:”zako”, “pass”:”week_pass”},{“id”:”ikarochan”, “pass”:”kawaii”},{“id”:”yoshiko”, “pass”:”ok”},{“\
\
id”:”miku”, “pass”:”hatsune”}]

・・for i in range(0, 4):
・・・・if user_data[i][“id”] == name:
・・・・・・if user_data[i][“pass”] == passwd:
・・・・・・・・success = True
・・・・・・・・session[‘username’] = name
・・・・・・・・return render_template(‘index28.html’,suc=success,name=name,pas=passwd,msg=my_message)
・・・・・・else:
・・・・・・・・continue
・・・・else:
・・・・・・continue
・・success = False
・・return render_template(‘index28.html’,suc=success,name=name,pas=passwd,msg=my_message)

@app.route(‘/logout’)
def logout():
・・session.pop(‘username’, None)
・・return redirect(url_for(‘func’))

app.secret_key = ‘A0Zr98j/3yX R~XHH!jmN]LWX/,?RT’

if __name__ == ‘__main__’:
・・app.run(debug=True)
****************************************
<!DOCTYPE html> <!– check28.html –>
<html lang=”ja”>
<head>
・・<meta charset=”UTF-8″>
・・<title>Loginフォーム</title>
<!– <link rel=”stylesheet” type=”text/css” href=”{{url_for(‘static’, filename=’style.css’)}}” /> –>
・・<link rel=”stylesheet” type=”text/css” href=”static/css/style.css” />
</head>
<body>

・・<form action=”/” method=”post”>
・・・・<h1>Login</h1>
・・・・<input type=”text” name=”username” placeholder=”Username” required/>
・・・・<input type=”password” name=”pass” placeholder=”Password” required/>
・・・・<input type=submit value=Login>
・・</form>

</body>
</html>
****************************************
<!DOCTYPE html> <!– index28.html –>
<html lang=”ja”>
・・<head>
・・・・<meta charset=”UTF-8″>
・・・・<title>Login</title>
<!– <link rel=”stylesheet” type=”text/css” href=”style.css” /> –>
・・・・<link rel=”stylesheet” type=”text/css” href=”static/css/style-07.css” />
・・・・<!–&#91;if lt IE 9&#93;>
・・・・<script src=”http://html5shiv.googlecode.com/svn/trunk/html5.js”></script>
・・・・<!&#91;endif&#93;–>
・・</head>
・・<body>
・・・<h1>Login終了</h1>
・・・{% if suc %}
・・・<h1>Login OK</h1>
・・・<h1>Username is {{ name }}</h1>
・・・{% else %}
・・・Invalid Username or Password. Debug {{ name }},{{ pas }}
・・・{% endif %}
・・・</br>
・・・demo28.pyからのメッセージは:</br>
・・・{{ msg }}です。

・・</body>
</html>
****************************************
<!DOCTYPE html>
<html lang=”ja”>
<head>
・・<meta charset=”UTF-8″>
・・<link rel=”stylesheet” href=”/static/css/style-03.css”>
・・<title>Deep Learning second TEST</title>
</head>
<body>
・・<title>Hello from Flask</title>
・・{% if name %}
・・・<h2>{{ name }}さん!テンプレートからのHello Worldだよ!</h2>
・・{% else %}
・・・<h2>テンプレートからのHello Worldだよ!</h2>
・・{% endif %}

・・<p>
・・・<img src=”/static/images/plant_3.jpg” alt=”pic03″>
・・</p>

・・<script src=”/static/js/main.js”></script>
</body>
</html>
****************************************
(function(){
・・’use strict’;

・・alert(‘アラートですよ〜。’);

})();
****************************************

↑人気ブログランキングに参加しています。よろしければ1票を!