MSYS2でansibleを使うときの訂正とpythonのvirtualenvとvenv

Pocket

MSYS2でansibleを使うときは32bit版ではなくて、インストールするパッケージがmsysのpythonであることが必要でした。
以前の記事を訂正しました。

pythonのバージョンを管理する、python3のvenvやpython2のvirutalenvも、msys用のpythonだと動きますがMinGW用のpythonだと動きません。

スタートメニューのMSYS2 MinGW 32-bitや、MSYS2 MinGW 64-bitのコンソールでは、MinGW用のpythonがインストールしてあるとそちらが優先的に実行されてしまうので注意してください。

msys用のpythonはpipが用意されていませんので、get-pip.pyをcurlでインストールします。

python2の場合、pipでvirtualenvをインストールします。そのうえで-m virtualenvでモジュールを指定して実行します。適当な名前myvenvを指定すると、myvenv/bin/以下にpythonやpipがコピーされます。activateをbashに読み込ませると開発環境が変わります。

カッコつきで(myvenv)のように表示されるとOKです。

deactivateで元に戻ります。

$ pacman -S python2

$ curl -kL https://bootstrap.pypa.io/get-pip.py | python2
$ pip install virtualenv

$ mkdir test
$ cd test
$ python2 -m virtualenv myvenv
$ source myvenv/bin/activate

(myvenv)

$ deactivate

python3をpython2と同居させる場合、pipコマンドをpython2のようにインストールすると、/usr/bin/pipが上書きされてしまいます。
そのため、venvというモジュールを使ってローカルのフォルダにpip関係のモジュールを入れて隔離したほうがいいです。

python2は、virtualenvをpipでインストールしないといけないので、グローバルにインストールするしかないです。

適当な名前myvenvを指定してpython3 -m venvを実行するとpython3の実行ファイルとpipがコピーされて使えるようになります。

$ pacman -S python

$ mkdir python3test
$ cd python3test
$ python3 -m venv myvenv
$ source myvenv/bin/activate

(myvenv)

$ deactivate

python2とpython3でpipをインストールすると、pipは後にインストールしたほうになります。先にインストールした方は、pip2もしくはpip3で指定しないといけないです。

混在するのはよくないので、pipはpython2のみでインストールし、python3は-m venvで仮想環境を作ったときに自動でインストールされるpipを使うのがよいです。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください