Pythonのvenvモジュールで仮想環境を簡単構築
Pythonのvenvモジュールを用いた仮想環境構築手順です。仮想環境を用いることで、例えばPython2系とpython3系などを一つのコンピュータ上(MacOS等)に入れられるようになります。異なるバージョンのライブラリを使い分けたい場合等にも便利です(Python 3.6〜)。
下記コマンドでカレントディレクトリにmyenvという名前のディレクトリが作成されます(myenvはお好みの名前に変更してください)。 この名前(myenv)が仮想環境の名前となります。
python3 -m venv myenv
.コマンドで下記コマンドを実行すると、仮想環境に入ることができます。
. myenv/bin/activate
仮想環境に入ると、プロンプトの先頭に(myenv)と表示されるようになります。
(myenv)$
以上で終了です。仮想環境から抜けたい場合は、deactivateコマンドを打ちます。
(myenv)$ deactivate
以上の手順で仮想環境を簡単に導入することができます。必要なライブラリをインストールして環境を構築していきましょう。なお仮想環境下ではpythonコマンドでpython3を実行することが可能です。
【Scrapy】Syntaxエラーdef write(self, data, async=False)とその対処法
ScrapyでのSyntaxErrorとその対処法についてです。(Python3.7.0、Scrapy1.5.0)
ScrapyでSpiderファイルを実行しようとした際に下記エラーが発生。
def write(self, data, async=False):
SyntaxError: invalid syntax
下記リンクによるとScrapy(のTwistedライブラリ)が現状Python3.7に対応していないことが問題のようで、下記リンクを参考に次のコマンドを実施。
@joshspivey async keyword is used in Twisted, not in Scrapy. @lopuhin worked with Twisted maintainers to fix it in Twisted, so Scrapy will work with Python 3.7 after Twisted release a new version with a fix. Also, we've worked around it in Scrapy itself, so that Scrapy works with the current Twisted release (disabling manhole), this will be available in a next Scrapy release.
引用:https://github.com/scrapy/scrapy/issues/3143#issuecomment-368559739
pip install git+https://github.com/scrapy/scrapy@master --no-dependencies --upgrade
エラー無く実行できるようになりました。なお本問題はScrapyの1.6では対応される予定のようです。
Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-
- 作者: 加藤耕太
- 出版社/メーカー: 技術評論社
- 発売日: 2016/12/16
- メディア: 大型本
- この商品を含むブログ (3件) を見る
【レビュー】Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎
前回に引き続き、機械学習本のレビューになります。今回紹介するのは、オライリー・ジャパンの「Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎」という本です。
Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎
- 作者: Andreas C. Muller,Sarah Guido,中田秀基
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/05/25
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
始めに読んでみた感想として、一度で全てを理解するのは難しいのは確かですが、その情報量から今後機械学習を進める上での参考書としてとても優れている本だと感じました。
本書で用いられているscikit-learnとは、機械学習分野において広く使われているオープンソースライブラリです。機械学習にあたってはデータの準備が一つの大きなハードルとなりますが、scikit-learnは様々なデータセットを提供してくれるので初学者でも簡単に機械学習に取り組むことができます。また様々な機械学習アルゴリズムが網羅的に含まれており、大学や産業界でも広く使われているライブラリになります。
それでは各章の内容について簡単に触れていきます。
- 1章 はじめに
- 2章 教師あり学習
- 3章 教師なし学習と前処理
- 4章 データの表現と特徴量エンジニアリング
- 5章 モデルの評価と改良
- 6章 アルゴリズムチェーンとパイプライン
- 7章 テキストデータの処理
- まとめ
Ubuntuでpip3コマンドが使えなくなった時の対処法
pip3を10.xへアップグレードした後に、pip3コマンドが使えなくなってしまったため、その原因と対処法を調べてみました(Ubuntu18.04を使用しています)。
原因
pip3 install --upgrade pip
でpip3をアップグレードすると下記のようにpip-10.0.1にアップグレードされます。
しかしその後pip3(pip3 installなど)のコマンドを実行しようとするとcannot import name 'main'というエラーが発生します。
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'
下記リンクによると、上記アップデートでsystemのpipをアップデートして内部メソッドが書き換わったことにより、Ubuntu側で提供されているpip3コマンド(/usr/bin/)使えなくなってしまったことによる、と書かれています。
You must have inadvertently upgraded your system pip (probably through something like sudo pip install pip --upgrade)
pip 10.x adjusts where its internals are situated. The pip3 command you're seeing is one provided by your package maintainer (presumably debian based here?) and is not a file managed by pip.
引用:Python pip3 - cannot import name 'main' error after upgrading pip - Stack Overflow
対処法
上記説明は少し難しいのですが、これを解決する方法は調べた範囲では二通りあるようです。
一つはpip3コマンドの代わりに
python3 -m pip
を用いる方法。こちらはそのままの最新のpipを使用できます。
もしくは、もともとのpip3コマンドを使いたいという場合、pipを下記コマンドで一度アンインストールして
sudo python3 -m pip uninstall pip
その後、aptコマンドで再インストールする方法があります。
sudo apt install python3-pip
この場合、pip3コマンドは使えますが、バージョンはUbuntuのレポジトリにある最新版がインストールされます(下記の場合、pip 9.0.1)。
最後に
Ubuntuでpip3コマンドが使えなくなった場合の原因と対処法について説明しました。お役に立ちましたら幸いです。
【機械学習】UbuntuならびにTensorFlowのインストール方法
機械学習用に、Macの仮想環境にUbuntu18.04 LTSを入れてTensorFlowの導入まで行ないました。結構時間がかかってしまったので、記録として一から流れを残しておきたいと思います(Windowsも同様の流れで実行できます)。
- 1. Ubuntuのダウンロード
- 2. VirtualBoxのインストール
- 3. Virtual BoxでUbuntuの仮想マシンを作成
- 4. TensorFlowのインストール
- 最後に
Pythonでfailed to execute ['dot', '-Tpng', '-O', 'tmp'], make sure the Graphviz executables are on your systems' PATHと出た時の対処方法
Pythonのscikit-learn の決定木を勉強中に発生したエラー対処方法です(Python 3.5.2)。graphvizをimportしようとした所、下記エラーが発生。
ImportError: No module named 'graphviz'
そこで下記コードを実行してから再度importを試したところ、
pip install graphviz
今度は下記のようなエラーが発生。
ExecutableNotFound: failed to execute ['dot', '-Tpng', '-O', 'tmp'], make sure the Graphviz executables are on your systems' PATH
こちらによると、Pythonパッケージのほかにシステム側にもインストールしないといけないらしいです。CentOSを使っているので下記でインストール。
sudo yum install graphviz
Ubuntuの場合は、
sudo apt-get install graphviz
これでエラー無く使えるようになりました。
ImportError: libSM.so.6: cannot open shared object file: No such file or directoryが出た時の対処法
Pythonでimport cv2をした時に出たエラーの対処方法を書いておきます。(CentOS 6.9)
pip install opencv-python
上記でOpencvをインストール後、import cv2とすると下記のようなエラーが発生。
Traceback (most recent call last): File "test.py", line 1, in <module> import cv2 File "/home/vagrant/.pyenv/versions/3.5.2/lib/python3.5/site-packages/cv2/__init__.py", line 4, in <module> from .cv2 import * ImportError: libSM.so.6: cannot open shared object file: No such file or directory
yum search libSM
でライブラリ一覧がでてきますが、その中から下記をインストールします。
yum install libSM.x86_64
無事にインストールが済むとエラーが発生しなくなっているはずです。
こちらを参考にさせて頂きました。
Jupyterでmatplotlibのインポートした時にImportErrorが出た時の対処法