Visual Source CodeによるRuby開発環境

Microsoft社のVisual Source Code(VSC)でRuby環境を構築した時のメモ。Ruby/RSpecののデバッガとしてなかなか手頃のものがなかったが、VSCでいい感じのデバッグ環境が簡単に構築できた。

【環境】
●Windows 10: Anniversary Update版
 bashが使えるが、まだ環境を移植していないので、当面、MinGW/msysのまま
●MinGW/msys:1.0
●Visual Source Code:1.7.2
●Ruby:2.0.0
●Rspec:3.4.4
●pik:0.3.0.pre
Windows上のRuby仮想環境(Windowsのbashが使えるならもっと手ごろな仮想環境ありそうだが、、)

【追加したVSCのプラグイン】
・Ruby

【WindowsでのRubyデバッグ環境の整備】
●Development Kitのインストール(Windowsのみ必要)

$ ruby dk.rb init
$ ruby dk.rb install

・参考にさせて頂いたURL:DEVELOPMENT KIT のセットアップ方法

●デバッグに必要はパッケージのインストール

$ gem install ruby-debug-ide
$ gem install debase

・参考にさせて頂いたURL:Visual Studio Code で Ruby を何とかして書けるようにする

【Ruby用起動方法】
> pik use ruby-2.0.0-p247 # Ruby仮想環境の設定
> code # Ruby仮想環境を使用するようにVSCを起動

【Ruby用launcher.jsonの修正(抜粋)】
ディフォールトのRuby用launcher.jsonだと、main.rbがデバッグ対象になるため、開いているスクリプトファイル${file}を指定するように変更。また、RSpec用スクリプトもデバッグできるように、追加してみた。ただし、Rubyの仮想環境を使っているが、proguram変数に指定するrspecは絶対パスを指定しているので、今後修正しないとダメだが、とりあえず、、、(どなたか、仮想環境でのrspecを上手く指定する方法が分かれば教えて頂けないでしょうか)。
多少の不満はあるが、Rubyコードが簡単にデバッグできるようになって、結構感激。

        {
"name": "Debug Local File",
"type": "Ruby",
"request": "launch",
"cwd": "${workspaceRoot}",
"program": "${file}" // "${workspaceRoot}/main.rb"から開いているスクリプトをに変更
},
{
"name": "RSpec Local File",
"type": "Ruby",
"request": "launch",
"cwd": "${workspaceRoot}",
"program": "c:/Ruby/Ruby200-x64/bin/rspec", // 絶対パスを指定
"args": [
"-fd",
"-I",
"${workspaceRoot}",
"${file}"
]
},

スポンサーサイト

Visual Source CodeによるPython開発環境

Microsoft社のVisual Source Code(VSC)でPython環境を構築した時のメモ。VSCはAtomより軽量で安定しており、Python、Ruby、Markdown開発用のエディタ( MarkdownでPDF/HTML/DOCXファイルへの変換方法とチートシート )、デバッガとしても使えるとのこと。ぱっと触った感じだと、結構いい感じなので、長年使ってきたEmacsから乗り換えることも可能かもしれない(Emacsのキーボードバインディングのプラグインもあったが、Windowsのキーバインディングとバッティングしまくりで、当面使うことを諦めた)。

【環境】
●Windows 10: Anniversary Update版
 bashが使えるが、まだ環境を移植していないので、当面、MinGW/msysのまま
●MinGW/msys:1.0
●Visual Source Code:1.7.2
●Anaconda/Miniconda
 Python 3.5.2を仮想環境で利用中

【追加したVSCのプラグイン】
・Python

【Python用起動方法】
$ source activate py35 # Python 3.5.2仮想環境の設定
$ cmd /c code # Python3.5.2を使用するようにbashからVSCを起動

【Pythonデバッグ用launcher.jsonの修正(抜粋)】
ディフォールトのPython用launcher.jsonだと、実行時のカレントディレクトリが「フォルダを開く」で開いたフォルダになっているようなので、スクリプトがあるフォルダをカレントディレクトリに指定するように変更し、実行時にPYTHONPATHの修正が必要な場合はenv変数を修正するように変更してみた。現状デバッグはSpyderを主に使っていたが、VSCでのデバッグはSpyderがサポートしているPandasの表形式の表示がない程度で、かなり使える印象。

        {
"name": "Python",
"type": "python",
"request": "launch",
"stopOnEntry": true,
"pythonPath": "${config.python.pythonPath}",
"program": "${file}",
"cwd": "${fileDirname}", // "${workspaceRoot}"を変更してスクリプトファイルディレクトリに設定
"env": {
"PYTHONPATH": "${env.PYTHONPATH};c:/home/XXX" // PYTHONPATH環境変数を修正
},
"debugOptions": [
"WaitOnAbnormalExit",
"WaitOnNormalExit",
"RedirectOutput"
]
},

MacとAnacondaを利用したPython Spyder環境構築(その後)

昨日作成した下記を

MacとAnacondaを利用したPython Spyder環境構築

改めて本日確認したところ、Anaconda/Minicondaでspyderをインストールすると

インストールされたバージョン
- pyqt 4.11.4 py35_4
- sip 4.18 py35_0
- spyder 2.3.9 py35_1

となって、sipの依存バージョンが更新されたみたいで、無事に動作した。よかったよかった!!!

WindowsのMinGW/msys上にAnaconda環境構築

Windows上のMinGW/msys上にAnaconda/Miniconda環境構築を構築。基本的には問題なくインストールできたが、仮想環境上でcondaコマンドが動作しない。結局、AnacondaがインストールするシェルスクリプトのCRLFが悪さすることが原因だった。

今までもMinGW/msys上でのシェルスクリプトで1行目にshebangを

#!/usr/bin/env bash

のように指定しても動作しなかったが、無事解決。めでたしめでたし。

【環境】
●Windows:10
●Anaconda/Miniconda
●MingGW/msys

【発生した問題】
$ conda create -n py35 python=3.5
$ source activate py35 # 仮想環境オン
(py35) $ python -V
Python 3.5.2 :: Continuum Analytics, Inc.
(py35) $ conda list # 下記のエラーで動作せず
/usr/bin/env: bash : No such file or directory
$ source deactivate # 仮想環境オフ
$ conda list
# packages in environment at c:¥Python¥Miniconda3:
#
conda 4.2.7 py35_0
conda-env 2.6.0 0

... 省略


【原因と対策】
●原因
shebangで指定しているenvに渡されるパラメータがdos形式(改行:CRLF)のスクリプトの場合、

bash^M

となって、bashが見つからないため、本問題が発生。

●対策1
以下のようにsourceを指定して、1行目のshebangをスキップする。

$ source conda list

●対策2
以下のようにshbangを変更する。

#!/bin/bash

●対策3
condaの改行をCRLF(dos形式)からLF(unix形式)に変更する(本当はこれが一番良いかも)

MacとAnacondaを利用したPython Spyder環境構築

Windows、MacともずっとPython2.Xの環境を利用していたが、Anacondaを利用して、3.Xも利用できるようにした。Windowsは問題なくインストールできたのだが、Macでは、IDEのSpyderが最新でのAnacondaではうまく動作しなかったので、その対策メモ(対策が正しいかどうかは保証は全くなしなので、あくまで当面の処置)。

結局、Anaconda/Minicondaで管理されているモジュールバージョンの整合性の問題で動作しなかったみたいで、対策はpipで個別インストールとほぼ等価になってしまった。バージョン管理を簡単にやりたかっただけに、結構悲しい、、、!

【環境】
●Mac: OS X El Capitan
●pyenv: 1.0.2
●Anaconda: miniconda-latest
●Python: 2.7.12, 3.5.2

【インストール方法】
$ conda create -n py35 python=3.5
$ conda install qt pyqt
$ pip install spyder

インストールされたバージョン
- pyqt 4.11.4 py35_4
- sip 4.16.9 py35_0
- spyder 3.0.0


【参考:問題が発生した方法】
$ conda create -n py35 python=3.5 spyder qt pyqt
下記のエラーが発生(pyqtやsipをcondaでupdateしようしても、バージョンが整合していないみたいで、うまく動作せず)。

runtimeError: the sip module implements API v11.0 to v11.2 but the PyQt4.QtCore module requires API v11.3

インストールされているバージョン
- pyqt:4.11.4
- sip:4.16.9
- spyder:2.3.9

下記のようにanaconda3-4.1.1を丸ごとインストールしたり、仮装環境にもそのまま指定すると動作するみたいだが、

$ conda create -n py27 python=2.7 anaconda

不要なモジュールがいっぱいコピーされるので、とりあえず、前述の方法で対応中。
プロフィール

Author:Zaike Yuki
オブジェクト指向、C++/Java、Python、Eclipse、Android、等に興味を持つソフトウェアエンジニア

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる