macroscope

( はてなダイアリーから移動しました)

WindowsでのAnacondaの複数ユーザー共用はむずかしい

【まだ書きかえます。どこをいつ書きかえたか、かならずしも明示しません。】

【この記事は、職務に関連するものではありますが、専門的知識の提供でも、意見の主張でもなく、自分の考えを整理するための おぼえがきです。】

- 1 -
まえに [2021-05-09 気象データの可視化、Python でとりかかったところ] の記事で書いたように、気象データ解析の教材づくりの努力を、プログラム言語 Python によるものに集中させようと思って、しばらくやってきた。

- 2 -
学部3年生の実習 (複数教員で担当) は、Linux 上の python3 をうごかすことにした。第1回を対面授業でできたので、 学生がそれぞれのパソコンに terminal と X Window System のソフトウェアを入れ、そこから ssh で Linux にログインし、プログラムを実行して図を画面に出すところまでためすことができた。それ以後のオンラインの回には、zoom で説明しながらログインしてもらった。これでうまくいったが、もし全部オンラインだったらわからないままになった人が出てしまったと思う。

- 3 -
卒論生には、各自のパソコン (いずれも Windows だった) に Anaconda をインストールすることをすすめた。Anaconda も Python も はじめてだったはずだが、とくに困難はなかった。わたしが説明した実行方法は、Anaconda Power Shell のコマンドプロンプトから「python なになに.py」と うちこむ、というものだったが、Spyder をつかいこなせるようになった人もいた。あとでわかったのだが、それぞれ自分だけがつかう (single user) パソコンだったからうまくいったのだ。

- 4 -
研究室には前任者からひきついだ Windows のパソコンが複数ある (しかしゼミの学生の人数よりはすくない)。それを学生が Python プログラムを動かせるように整備しようとは、学年はじめから思っていたのだが、作業開始は11月になってしまった。

Anaconda の インストールの途中で、インストールしたユーザーだけがつかうのか、そのパソコンのユーザーの全員がつかうのかをたずねられる。そこで全員がつかうほうをえらべばよい、と思った。しかし、それだけでは、インストールしたユーザー (便宜上「管理者」とよぶ) のほかの人 (便宜上「一般ユーザー」とよぶ) が わたしがうごかしてもらいたいプログラムを うごかせるようにならない。とくに、管理者が地図をかくための Cartopy というパッケージを追加しても、一般ユーザーがそれをつかえるようにならない。

Python の入門書はたくさん出ていて、そのうちには Anaconda の利用をすすめていて、インストールの手順ものべているものもある。しかし、わたしが見たかぎりみんな、「just me」を選択せよとしている。プログラムの実行も管理者権限をもったユーザーがそのまますることを想定しているのだ。マルチユーザーむけの設定のしかたを書いた本は見あたらない。

ウェブ検索をすると、断片的な情報はみつかる。一般ユーザーに同じパッケージをつかってもらうためには、管理者が「環境」を構築し、しかもそれを管理者のホームディレクトリの下 (という表現が Windows で適切かは疑問だが Unix系OSならばそうよばれるだろうところ) ではなく共通のところ (「c:/ProgramData/Anaconda3」の下がよいらしい) に置いて、その「環境」のなかにパッケージ (わたしのばあいならば Cartopy )をインストールする、という手順をふむ必要があることがわかった。ただしそれだけでは一般ユーザーから読めず、管理者が Windowsの「設定」の操作をして、「環境」を置いたディレクトリを他のユーザーと「共有」する、という手順も必要らしい。

試行錯誤のすえ、なんとか、1台のパソコンでは、一般ユーザーも Cartopy をよびだすプログラムを動かせるようになった。しかしまだ問題がある。Cartopy で海岸線をひくことができるが、一般ユーザーで実行すると海岸線がひかれないのだ。Cartopy の coastlines() でひく海岸線の位置のデータは最初の実行時に動的にとりにいくようになっている。一般ユーザーに海岸線データをとりにいく権限がないのはもっともと思うが、さきに管理者がダウンロードした海岸線データを読むこともできていないらしい。

しかも、2台めのパソコンで、1台めの作業で理解した手順をくりかえしたつもりなのだが、同じ動作をしない。1台めの試行錯誤の過程でやったことのうちどれかが必要なのかもしれないが、よくおぼえておらず、再現できない。

わたしの研究室パソコンの Python 利用環境づくりは、いきづまっている。Linux上の Anaconda はマルチユーザー利用が当然であるようにつくられているようだ。しかし、大学が全体として Microsoft と契約して MS Office のライセンスをとっており、授業用ツールとしても Microsoft のものをつかうことが多い、という事情もあり、おおくの学生が Windows になれているから、Windows パソコンをなくす (OSをLinux にかえてしまう) のはまずいだろう。Windowsパソコンを端末として Linux にログインすることをローカル標準にするしかないか、と思っている。

- 5 -
R ならば、管理者権限をもったユーザーがふつうにインストールすれば、一般ユーザーもつかえる。そして、まだよくためしていないのだが、管理者ユーザーがインストールしたパッケージを一般ユーザーもつかえるようにすることはむずかしくないようだ。

しばらく Python に集中させてきた教材整備の努力を、ふたたび R にもふりむけるべきだろうか。

ただし R にも困難があらわれた。いま開発中の R 4.2 では Windows用が 64ビット版だけになるそうだ。わたしのところにはまだ 32ビット版OS でうごいているパソコンがある。そのマシン上では R のバージョンが 4.1 どまりになることを覚悟しなければならない。