FC2ブログ

[python]トラブルシューティング

Missing parentheses in call to 'print'. Did you mean print(title_tag)?
printの書き方がver3で変わってる。

print "Hello world" # python 2.x
print("Hello world") # python 3.x


ModuleNotFoundError: No module named 'urllib2'

インストールされてなければ以下でインストール。
pip install urllib2

また、書き方がver3で変わってる事に注意。
import urllib2 # python 2.x
import urllib.request, urllib.error # python 3.x



AttributeError: module 'urllib' has no attribute 'urlopen'

python3で書き方が変わってる。
html = urllib2.urlopen(url) # python 2.x urllib2
html = urllib.request.urlopen(url) # python 3.x urllib



AttributeError: 'NoneType' object has no attribute 'text'

print soup.select_one("#CONTENTS_MARROW > xxx > yyy > span.prices").text
取得したオブジェクトにtextアトリビュートがないって事かな。
print soup.select_one("#CONTENTS_MARROW > xxx > yyy > span.prices")



CSSセレクタの指定方法例
(注) print構文がprint()なのは、python3.x系です。

使ったソースはこれ。

# -*- coding: utf-8 -*-
import urllib.request
from bs4 import BeautifulSoup

# urlのHTMLを取得
url = 'https://algorithm.joho.info/'
html = urllib.request.urlopen(url)

# htmlをBeautifulSoupでパース
soup = BeautifulSoup(html, "html.parser")

# CSSセレクタで指定したタグ内のコンテンツを表示
print(soup.select_one("#post-17926 > div > footer > p > span.category > a").get('href'))


https://algorithm.joho.info/
print(soup.select_one("#post-17926 > div > footer > p > span.category > a").text)
電気・電子工学
  --> 成功

print(soup.select_one("#post-17926 > div > footer > p > span.category > a").get('href'))
https://algorithm.joho.info/category/denki-denshi/
  --> 成功
スポンサーサイト

[Py][Colabo]トラブルシューティング

FirefoxからCoraboへファイルアップロードする際のエラー


from google.colab import files
uploaded = files.upload()
Coraboへファイルをアップロードする際、このように書くと、
Chromeならファイル選択ウィンドウが出てたが、Firefoxだと以下エラー。

Upload widget is only available when the cell has been executed in the current browser session. Please rerun this cell to enable.

https://qiita.com/kakinaguru_zo/items/33dbe24276915124f545

ここのページでも触れているが、なんかFirefoxだとエラーになるみたい。

[Py][Colabo]コマンド

Google Colaboratoryにおけるpythonメモ。
まずはGoogle IDでログインして、Google ColaboのJupyter Notebookを開くこと。
尚、特に説明がなければ、以下の書籍を参考にしてます。

ゼロから作るDeep Learning
――Pythonで学ぶディープラーニングの理論と実装
https://www.oreilly.co.jp/books/9784873117584/



Shift + Enterで実行

NotebookのPythonコード欄に記述して、Shift + Enterで実行可能。


Linuxコマンドは!をつけて実行

NotebookのPythonコード欄に!付でLinuxコマンドを記述して、Shift + Enterで実行可能。

例:
!pwd
Shift + Enterで実行


ファイルをアップロード

from google.colab import files
uploaded = files.upload()

これでアップロードウィザードが出るので、ファイルを選択。


画像を表示

import matplotlib.pyplot as plt
from matplotlib.image import imread

img = imread("hoge.jpg")
plt.imshow(img)
plt.show()

上でアップロードしたファイル名をそのまま書けばよい。



グラフを描画

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 6, 0.1)
y1= np.sin(x)
y2= np.cos(x)

plt.plot(x, y1, label="sin")
plt.plot(x, y2, linestyle="--", label="cos")
plt.xlabel("x axis")
plt.ylabel("y axis")
plt.title("sin & cos")
plt.legend()
plt.show()





ColaboのJupyterからGoogleドライブ上のファイルへアクセス

https://qiita.com/yoshizaki_kkgk/items/bf01842d1a80c0f9e56c
こちらを参考にやってみる。そのまんまです。

まずはGoogle Driveと接続するためのモジュールをインストール。

!pip install -U -q PyDrive

 ※ 以降いずれもコマンドの後で、Shift + Enter、を押して実行すること。


必要なライブラリを読み込む。

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials


実行しても、何も表示ない。もしGoogleが無い、と言われたら、以下を実行すれば良いそうだ。

!pip install google


以下でGoogle Cloud SDKの認証を行う。

auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

これ実行すると、確かに以下のように出た。

Go to the following link in your browser:

https://accounts.google.com/ .........(長いURL)


このURLをクリックすると、Google Cloud SDKへログインするよう言われる。
ログインした後、「Google Cloud SDKでの使用許可」を「許可」すると、認証コードが表示される。
このコードをコピーして、Jupyter Notebookへ戻り、先ほどの枠にペーストし、Enter。
これで何も表示されず、さっきまで出てた上のURLなどもすべて消えた。何も表示ないのでエラー無しって事らしい。

次に、扱いたいファイルをGoogle Driveの任意のフォルダへコピーしておく。
そのファイル上で > 右クリック > 共有可能なリンクを取得
すると、クリップボードに以下のようなURLがコピーされている。
https://drive.google.com/open?id=1EEXKXPo-A

Google DriveからJupyter上にコピーするには、以下のようにやる。
上でゲットしたURLのうち、id=以降の部分を以下idへ代入する。

id = '1EEXKXPo-A'
downloaded = drive.CreateFile({'id': id})
downloaded.GetContentFile('hoge.jpg')

上記ではファイル名をhoge.jpbとしている。

エラー無く完了したら以下コマンドでコピーできたことを確認する。
 ※ 毎度のShift + Enterも忘れずに。
!ls
adc.json hoge.jpg sample_data

すると、hoge.jpgが直下にコピーされた事が確認できた。
ここまで来れば、あとは上の「画像を表示」で書いた通りのコードを使って、Google Driveからコピーした画像が表示出来た。


MNISTデータ読み込み
書籍p.74

まず、githubからダウンロードしたdeep-learning-from-scratch-master.zipを展開し、中身をカレントDIR直下に移動した。

ch01 ch04 ch07 dataset README.md
ch02 ch05 ch08 sample_data
ch03 ch06 common LICENSE.md


この状態から以下のようにして提供されているdataset/mnist.pyを利用して、load_mnist関数を呼び出し、
それを使ってMNISTデータを読み込む。


import sys, os
sys.path.append(os.pardir)
from dataset.mnist import load_mnist

(x_train, t_train), (x_test, t_test) = \
load_mnist(flatten=True, normalize=False)

print(x_train.shape)
print(t_train.shape)
print(x_test.shape)
print(t_test.shape)

[python]コマンド

requests HTTPライブラリ

import requests
target_url = 'http://tech.nikkeibp.co.jp/'
res = requests.get(target_url)



# GET
requests.get('URL')
# POST
requests.post('URL')
# PUT
requests.put('URL')
# DELETE
requests.delete('URL')
# header の取得
requests.head('URL')





Jupyterインストール

Windowsキー > anacon・・ とタイプ > Anaconda Promptを起動
 > pip install msgpack
 > pip install jupyter



seleniumインストール

Windowsキー > anacon・・ とタイプ > Anaconda Promptを起動
 > pip install selenium


WindowsへPython 3.7.1インストール

https://www.python.org/downloads/release/python-371/

このページの以下からpython-3.7.1-amd64.exeをダウンロード。
Windows x86-64 executable installer

実行してインストールする。(「PATHへのPython追加」をYESに、あとはインストール先を変えたくらい)



NumPyインストール

上のPythonインストールの続き。
コマンドプロンプトを開き、pythonで起動。

C:\bob\user\work\git\program\python\deep_learning_from_zero>python
Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>


続けて次のように実行すると、エラーが出たので、numpyはインストールされてないということ。

>>> import numpy
Traceback (most recent call last):
File "", line 1, in
ModuleNotFoundError: No module named 'numpy'
>>>


numpyをインストールするために、まずはpythonプロンプトをCtrl-ZからのEnterで抜ける。
それからコマンドプロンプト上から以下でインストールできる。

C:\bob\user\work\git\program\python\deep_learning_from_zero>pip install numpy
Collecting numpy
Downloading https://files.pythonhosted.org/packages/00/0e/5a8c34adb97fc1cd6636d78050e575945e874c8516d501421d5a0f377a6c/numpy-1.15.4-cp37-none-win_amd64.whl (13.5MB)
100% |████████████████████████████████| 13.5MB 742kB/s
Installing collected packages: numpy
Successfully installed numpy-1.15.4
You are using pip version 10.0.1, however version 18.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.



Matplotlibインストール

コマンドプロンプトから以下でインストールできる。

C:\bob\user\work\git\program\python\deep_learning_from_zero>pip install matplotlib
Collecting matplotlib
Downloading https://files.pythonhosted.org/packages/5c/ee/efaf04efc763709f6840cd8d08865d194f7453f43e98d042c92755cdddec/matplotlib-3.0.2-cp37-cp37m-win_amd64.whl (8.9MB)
100% |████████████████████████████████| 8.9MB 1.1MB/s
Collecting pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 (from matplotlib)
Downloading https://files.pythonhosted.org/packages/71/e8/6777f6624681c8b9701a8a0a5654f3eb56919a01a78e12bf3c73f5a3c714/pyparsing-2.3.0-py2.py3-none-any.whl (59kB)
100% |████████████████████████████████| 61kB 552kB/s
Collecting python-dateutil>=2.1 (from matplotlib)
Downloading https://files.pythonhosted.org/packages/74/68/d87d9b36af36f44254a8d512cbfc48369103a3b9e474be9bdfe536abfc45/python_dateutil-2.7.5-py2.py3-none-any.whl (225kB)
100% |████████████████████████████████| 235kB 535kB/s
Requirement already satisfied: numpy>=1.10.0 in c:\python37\lib\site-packages (from matplotlib) (1.15.4)
Collecting kiwisolver>=1.0.1 (from matplotlib)
Downloading https://files.pythonhosted.org/packages/7c/be/7ae355b45699460e369ebf88d86058fca26827933974cc3f6b6b7800a324/kiwisolver-1.0.1-cp37-none-win_amd64.whl (57kB)
100% |████████████████████████████████| 61kB 570kB/s
Collecting cycler>=0.10 (from matplotlib)
Downloading https://files.pythonhosted.org/packages/f7/d2/e07d3ebb2bd7af696440ce7e754c59dd546ffe1bbe732c8ab68b9c834e61/cycler-0.10.0-py2.py3-none-any.whl
Collecting six>=1.5 (from python-dateutil>=2.1->matplotlib)
Downloading https://files.pythonhosted.org/packages/67/4b/141a581104b1f6397bfa78ac9d43d8ad29a7ca43ea90a2d863fe3056e86a/six-1.11.0-py2.py3-none-any.whl
Requirement already satisfied: setuptools in c:\python37\lib\site-packages (from kiwisolver>=1.0.1->matplotlib) (39.0.1)
Installing collected packages: pyparsing, six, python-dateutil, kiwisolver, cycler, matplotlib
Successfully installed cycler-0.10.0 kiwisolver-1.0.1 matplotlib-3.0.2 pyparsing-2.3.0 python-dateutil-2.7.5 six-1.11.0
You are using pip version 10.0.1, however version 18.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.



Anacondaインストール

https://www.anaconda.com/download/#download
ここの以下からダウンロード。
Python 3.7 version *
64-Bit Graphical Installer (633 MB)


CSSセレクターをコピー
スクレイピングのためのCSSセレクタコピー。

◆Firefox > 対象ページ開く > 右クリック > 要素を調査 > ページ下にウィンドウが出る。
 > 左側でCSSセレクタを調べたい場所を選択 > 右クリック > コピー > CSSセレクター
これで成功したのに、次にやったらパスが完全にコピー出来てない。なぜだ?

Google Chromeなら簡単にCSSセレクターをコピーする事が出来た。
◆Chrome > 対象ページ開く > 取得したい値にオンマウスで右クリック > 検証 > 右側にウィンドウ出る。
 > 既に対象のソース箇所が選択されてる > そのまま右クリック > Copy > Copy Selector

カレンダー
05 | 2019/06 | 07
- - - - - - 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 - - - - - -
累積訪問者
現在の訪問者
現在の閲覧者数:
最新記事
最新トラックバック
最新コメント
月別アーカイブ
カテゴリ
プロフィール

bobgosso

Author:bobgosso
FPGAのブログへようこそ!

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード