人事・労務の仕事をしていると、いろいろと「退屈」な仕事が多いです。そこで、「単純作業」「定形作業」を自動化できないか・・・と思って『退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング 』に取り組んでいます。

 

過去の記事は、コチラ
退屈なことはPythonにやらせよう・・・としてみた

【Python】サードパーティ製モジュールのインストールに失敗したときの対処法【pipツール】

 前回、サードパーティ製モジュールの導入に失敗して、3日くらいドハマリした後、ようやく切り抜けたトコロですが、再度ドハマリしてしまいました。

 こんどは、付録B Pythonをコマンドラインで実行する方法です。書いてあるとおりバッチファイルを実行しても、ナゾのエラーがでたり、画面が全然かわらなかったり・・・(泣)。

 この本、サブタイトルに「ノンプログラマーでもできる」なんて書かれているので、勝手に「パソコン初心者」でもできるんだぁ・・・なんて理解していましたが、トンデモナイです。「ノンプログラマー = パソコン初心者」ではなくて、「ノンプログラマー = プログラムを組んだことはないかも知れないが、メッチャパソコンに詳しい人」という位置づけなんでしょう。

 特に付録部分が、パソコンのかなり詳しい知識を前提としていて、ザックリしすぎる説明です。むかしむかーし、まだMSDOSの時代に、config.sysとかautoexe.batとか書き換えた経験があったから、オボロゲに内容の検討がついたものの、とても親切な説明とはいえないなぁ・・・・(個人の意見です)。

 愚痴っていてもしかたないので、取り急ぎ、ドハマリからの脱出方法について、備忘録として書き留めておきます。

ドハマリポイントは3点です。


  1. 「py.exe」なんてプログラムはインストールされていない(たぶん)。
  2. パスは日本語名をサポートしていない(たぶん)。
  3. Windowsキー + Rで起動する「ファイル名を指定して実行」ではムリ。コマンドプロンプトから実行する必要があった。
 たぶん、パソコンに詳しい人から見たら、「ショーモナイところでハマってるな」と思われるかもしれませんが、ほんとコレだけのことにずいぶん時間がかかってしまったよ。

 簡単にひとつづつ説明しましょう。

1.「py.exe」なんてプログラムはインストールされていない(たぶん)。

 テキスト p524の説明では、バッチファイルに「@py.exe c:\path\to\your\pythonscript.py %*」という1行を書け・・・となっていますが、そもそも「py.exe」なんてプログラムは、フォルダのどこを探してもありませんでした。

 ちなみに、私がインストールしたpythonは32ビット版のAnacondaです(ひょっとして、コレが原因かな・・・)。

 「C:\Program Files\anaconda」の中に、「python.exe」があるのを発見したので、「py.exe」のかわりに「python.exe」と書くことにしました。

 ほんと、「py.exe」はどうするんでしょうね。ドコかからダウンロードするんでしょうか・・・。

2.パスは日本語名をサポートしていない(たぶん)。

 次にハマったのが、パス名です。先程のバッチファイルに書く1行の後半の「c:\path\to\your\pythonscript.py 」の部分は、実際のパスを書くわけですが、この部分には日本語名のフォルダはダメです(たぶん)。

 私は、パソコンを買った時、ユーザー名をついウッカリ日本語名で登録してしまったため、pythonプログラムが格納されているフォルダのパスは「C:\Users\幸一\python」といった感じなんですが、エラーがでます。

<エラー>
C:\Users\幸一\python>pw blog
python.exe: can't open file '<unprintable file name>': [Errno 2] No such file or directory
続行するには何かキーを押してください . . .

 そこで、パスを環境変数に登録することにしました(やり方は、テキスト p524-p525に書いてあります。

 結局、バッチファイルは、日本語名の入ったパスは書かずに、次のようにシンプルに書きました。

<py.bat の中身>
@python.exe pw.py %*
@pause
 これで、エラーがでなくなりました。

3.Windowsキー + Rで起動する「ファイル名を指定して実行」ではムリ。

 「Windowsキー+R」でサクッと起動してプログラムが実行できれば便利なんですが、いちいち「WindowsによってPCが保護されました」ってメッセージがでます。

 解決方法を探したんですが、なんか疲れてきました。とりあえずコマンドプロンプトから実行したら結果を返してくれるので、ま・・・いっか ← イマココ

以上、最後の3つめは、なんだか解決していない感じですが、このままだとpythonと関係のないところで時間ばかりが過ぎていくので、次に進みたいと思います。

0 コメント :

コメントを投稿