Python
Azure

Windows Azure の Webサイト作成(Djangoプロジェクト)で pipインストールを可能にする

More than 3 years have passed since last update.


経緯

2014年9月12日から9月15日まで開催された PyCon JP 2014 の最終日に行ったPyCon JP 2014 Sprintは、 日本マイクロソフト 品川本社セミナールーム に会場をお借りしました。

Azureの事をほとんど理解していなかったので改めて、PaaS版のチュートリアルを行いました。Pythonの追加モジュールを入れてみようと思ったこと、pipが使えない状態でした。

これは、なんとかしたいと思い、 pip と virtualenv を入れてみようと思い、チャレンジしました。


作業方法

以下から、最新版のpipインストールファイルをフォルダダウンロードする。(Azure上にダウンロードしてきてもいい)

https://bootstrap.pypa.io/get-pip.py

pip と virtualenv のインストール

> python get-pip.py --user

> python -m pip install --user virtualenv

以下にインストールされた

C:\DWASFiles\Sites\~1xxxxxxxxxx\AppData\Python

自身のフォルダに、myenvというPython環境を作る

python -m virtualenv myenv

今後は、以下のpipを使ってモジュールのインストールが可能。と思ったが、どうもうまくいかないみたい。継続調査が必要。

> myenv\Scripts\pip.exe


解説

ユーザが書き込みできない場所に、Pythonがインストールされていると、site-packagesフォルダに新しいモジュールのインストールが出来ずエラーとなります。

最新のpipでは、--user というオプションが使用できるようになり、自身のホームディレクトリに pipをインストールし、virtualenvも作れるようになります。

これにより、管理者(root)権限などが無くても、virtualenvで自分の好きな場所に、Python環境が作れます。

ただし、今回のAzureの環境では、activateが出来ませんでしたので、毎回フルPath指定でPythonなどを呼ぶ必要があります。(Windowsだと環境変数がグローバルに影響を与えるからか??などの条件があるようです)


謝辞

パッケージング周りでは日本で一番詳しく、世界中探しても指で数えられるくらい上位にいると思われる、 @aodag さんに助けていただきました。