2015-03-21

[Ruby] Windows環境に Mechanize をインストールする

特定のウェブページへのアクセスをエミュレートして自動化するためのライブラリに Mechanize があります。  インストール方法をまとめます。

  1. 2015/03/20 現在、Windows 環境では、OneClickInstaller 32bit版(Mingw32系) でのみ動作します。 OneClickInstaller 64bit版 及び ActiveScriptRuby (mswin32系) 32bit/64bit では、インストール時にエラーが発生するようです。

    OS が 64bit の場合も、32bit 版の Ruby を使用してください。

     
  2. 念のため、Development Kit もインストールします。
    こちらから 32bit 版の Development Kit をダウンロードします。 展開したフォルダに移動して下記のコマンドを入力します。


     C:\ruby215\devkit>ruby dk.rb init
    
     [INFO] found RubyInstaller v1.8.7 at C:/Ruby187
     [INFO] found RubyInstaller v1.9.3 at C:/Ruby193
     [INFO] found RubyInstaller v2.1.5 at C:/Ruby215
    
     Initialization complete! Please review and modify the auto-generated
     'config.yml' file to ensure it contains the root directories to all
     of the installed Rubies you want enhanced by the DevKit.
    


    複数のバージョンの Ruby をインストールしている場合は、上記のように複数のインストール先が検出されます。 私の場合は、1.8 と 1.9 は、mswin32系で整合がとれていないので、'config.yml' を開いて、C:/Ruby215 以外の2行を消去してから、インストールコマンドを入力します。


     C:\ruby215\devkit>ruby dk.rb install
    
     [INFO] Updating convenience notice gem override for 'C:/ruby215'
     [INFO] Installing 'C:/ruby215/lib/ruby/site_ruby/devkit.rb'
    


     
  3. gem install mechanize で下の様なエラーが出る場合は、SSL の証明書を設定します。


     C:\ruby215> gem install mechanize
    
     ERROR:  Could not find a valid gem 'mechanize' (>= 0), here is why:
               Unable to download data from https://rubygems.org/ - SSL_connect retur
     ned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (
     https://api.rubygems.org/latest_specs.4.8.gz)
    


    こちらから証明書ファイル AddTrustExternalCARoot-2048.pem をダウンロードして、rubygemsフォルダ下の ssl_certs フォルダにコピーします。 rubygems フォルダの場所は下のように確認します。


     C:\ruby215>gem which rubygems
     
     C:/ruby215/lib/ruby/2.1.0/rubygems.rb
    
    
     C:\ruby215>copy AddTrustExternalCARoot-2048.pem C:\ruby215\lib\ruby\2.1.0\rubygems\ssl_certs
    
            1 個のファイルをコピーしました。
    



     
  4. 再度、インストールコマンドを入力します。


     C:\ruby215>gem install mechanize
    
     Fetching: net-http-digest_auth-1.4.gem (100%)
     Successfully installed net-http-digest_auth-1.4
     Fetching: net-http-persistent-2.9.4.gem (100%)
     Successfully installed net-http-persistent-2.9.4
         :
         :
     12 gems installed
    

2015-02-08

[Tcl/Tk] フォントのサイズをピクセル数で求める

キャンバスにウィジェットなどを直接貼り付ける際に、フォントサイズを表すポイント数からピクセルへの変換が必要になります。

ポイント数はディスプレイの解像度が 72DPI のときには1:1になりますが、解像度が変わると計算方法が異なります。 このとき tk scaling を用いると、72DPI に対する実際の解像度の比率が取得できます。

例としてデフォルトフォントの高さをピクセルで求めるコードを示します。


set fontsize [font configure TkDefaultFont -size]
set scale [tk scaling]
set in_pixels [expr $scale * $fontsize]

2015-02-07

[Tcl/Tk] tDOM パッケージがインストールされない場合

ActiveTcl で tDOM などのパッケージを使う場合、環境によってインストールされない場合があるようです。 私の場合は、Windows 8.1-64Bit と Windows7-64bit では正しくインストールされましたが、Windows8.1-32bit では、何故かエラーが出ました。

インストールエラーに気付かずスクリプトを走らせると



can't find package tdom
while executing
"pakage require tdom"



となります。

この場合、パッケージのアップデートをするために、コマンドプロンプトから、次の3つのコマンドを入力するとパッケージが更新されます。



C:\Users\batir> cd \Tcl\bin

C:\Tcl\bin> teacup link make "c:/Tcl/lib/teapot" /Tcl/bin/tclsh.exe

C:\Tcl\bin> teacup update



各種パッケージがインストールされているメッセージが表示され、tDOM などが使用出来るようになります。