仮想環境を作って色んなバージョンでの作成などができるそうですよ。

あらすじ

なぜ仮想環境を作るのかというと、開発プロジェクトごとに使ってるバージョンの違いがあったり、ライブラリのバージョンの違いがあったりして、同じプログラムでも挙動が違ったりするので、仮想環境を作ってそこで作るそうです。

へーって思ったね。

今回は、mac上で仮想環境を作って、プログラムを書いてみたいと思います。※本でみたのとコマンドが違ったりしたので、色々試してメモしておきます

仮想環境を作ってみる

作りたいPythonのバージョンを指定して仮想環境を作ります。仮想環境はディレクトリごとに作れるらしいので、作りたいディレクトリというか、プロジェクトの名前とかつけて作るといいらしいです

///バージョン3.7で、envという名前の仮想環境を作ります
$ python3.7 -m venv env

///その仮想環境を有効化します
$ source ./env/bin/activate

///envと名前をつけた環境が有効化されました
(env)

パッケージをインストールしてみる

今回は、requestという外部パッケージをインストールしてみます

(env) pip install requests==2.18.3

///何やら色々でてくる
///successとか出てくるので、きっと成功したのでしょう

(env) pip install beautifulsoup4==4.6.0

現在インストールされているパッケージを確認してみる

なんか本で言われたとおりにインストールしたりしてるけど、そもそも何が入ってるんだっけ・・?って思ったので、調べてみました。以下で、現在インストール済みのパッケージを確認できます。

(env) pip list

//以下、表示されたもの
Package        Version  
-------------- ---------
beautifulsoup4 4.6.0    
certifi        2019.6.16
chardet        3.0.4    
idna           2.5      
pip            19.0.3   
requests       2.18.3   
setuptools     40.8.0   
urllib3        1.22     
You are using pip version 19.0.3, however version 19.2.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

おお、さっきインストールしたbeautifulsoup4 も requests もインストールされてるようです。テンションがあがってきました。

英語はわからないけど、そんな私でも気づいたのが、pipのバージョン、新しいやつあるよ。’pip install –upgrade pip’ で何とかなるよと書いてあるようです。一旦無視しておきます。

あれ。。。そういえば、本の通りにrequestsをインストールしたものの、そのバージョンでいいんだっけ?
本って時差があるから、古いんじゃないの?というか、そのバージョン、どうやって知ったんだろうか?

どうにかして調べたい。。。あぁ、パッケージを検索できたらいいんでないの?

パッケージを検索してみる

調べたら出てきました。パッケージの検索方法。

(env) pip search requests

//以下ずらずらと。。
〜〜〜〜
requests-bearer (0.5.1)                - An implementation of JSON Web Tokens using the Bearer authentication scheme for Requests.
requests-threads (0.1.1)               - A Requests session that returns awaitable Twisted Deferreds instead of response objects.
requests (2.22.0)                      - Python HTTP for Humans.
  INSTALLED: 2.18.3
  LATEST:    2.22.0
requests-crawler (0.5.4)               - A web crawler based on requests-html, mainly targets for url validation test.
〜〜〜

ん?あるやんけ。私がインストールしたのは、2.18.3だったけど、最新版は2.22.0 と書いてある。
ちゃんと、私がインストールしてるよって表示してくれる親切設計。ちょっとだけ、Pythonが好きになってきました。

では、早速ですが、requestsを使って、何かファイルを作ってみます

import requests
  
data=requests.get('https://www.yahoo.co.jp/')

print(data.status_code)

print(data.text[:10])

//以下実行結果
200

ちゃんと動いた!requests.getでデータを取りに行って、ほんで、その中のstatus_codeでステータスコードが出てきて、.txtで、取得したテキストが出るらしいです。([:10]で、先頭から10文字を切り取っておきました)

無事に動いてよかった!少し、楽しくなってきました。

コメント