Monthly Archives: 2月 2016

MacOSXにbrewでpyenvをインストールする


brewを使用してMacOSXにpyenvをインストールします。

■前提条件

・Mac OSX Yosemite 10.10.5(14F1605)
・Homebrew 0.9.5

■手順

brewでpyenvをインストールします。

$ brew install pyenv

次に ~/.profile を開いてパスの設定を行います。

・・・
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
・・・

即座に反映させる場合は、

$ source .profile

これでOKです。


pyenvでPythonの指定のバージョンをインストールする


PythonのバージョンマネージャpyenvでPythonのバージョン指定してインストールし、任意のバージョンに切り替えて使用できるようにします。

■前提条件

・Mac OSX Yosemite 10.10.5(14F1605)
・pyenv 20160202

■インストール方法

インストール可能なバージョンを確認します。

$ pyenv install -list
Available versions:
  2.1.3
  2.2.3
  2.3.7
  2.4
 ・・・
  3.4.1
  3.4.2
  3.4.3
  3.4.4
  3.5.0
  3.5-dev
  3.5.1
  3.6-dev
 ・・・

指定のバージョンをインストールします(例としてまず2.7.11を)。

$ pyenv install 2.7.11
Downloading Python-2.7.11.tgz...
-> https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz
Installing Python-2.7.11...
Installed Python-2.7.11 to /Users/shoji/.pyenv/versions/2.7.11

次に別のバージョンを指定してインストールします(例として3.5.1を)。

$ pyenv install 3.5.1
Downloading Python-3.5.1.tgz...
-> https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz
Installing Python-3.5.1...
Installed Python-3.5.1 to /Users/shoji/.pyenv/versions/3.5.1

インストールが終了したら確認してみます。

$ pyenv versions
* system (set by /Users/shoji/.pyenv/version)
  2.7.11
  3.5.1

指定したバージョンがインストールされています。

実際に切り替えてみましょう。カレントディレクトリのみに反映する場合はlocalを、システムワイドに反映する場合はglobalを指定します。

たとえば、カレントディレクトリにPython 2.7.11を適用する場合は、

$ cd 任意のディレクトリ
$ pyenv local 2.7.11

です。

次に、システム全体にPython 3.5.1を適用してみます。

$ pyenv global 3.5.1

まずは、先ほどlocal指定で2.7.11を適用したディレクトリで確認してみましょう。

$ python --version
Python 2.7.11

Python 2.7.11がローカルに適用されています。

別のディレクトリに移動した後、再度確認してみます。

$ python --version
Python 3.5.1

Python 3.5.1がシステムワイドに適用されているのが確認できました。


brew updateでerror: The following untracked working tree files would be overwritten by merge:


brew updateを実行したら下記のエラーになりました。

$ brew update
error: The following untracked working tree files would be overwritten by merge:
	・・・
Please move or remove them before you can merge.
Aborting
Error: Failure while executing: git pull -q origin refs/heads/master:refs/remotes/origin/master

リモートブランチに.gitignoreに記述しているファイルがローカルブランチ側とコンフリクトしているようです。.gitignoreから当該ファイルを対象外にすればよい気がしますが、ここではローカルブランチをリセットすることで対処します。

■前提条件

・Mac OSX Yosemite 10.10.5(14F1605)

■対処方法

一旦、リモートブランチの内容をローカルリポジトリに反映します。

$ git fetch origin

次に、ローカルリポジトリの変更を全てリセットしてリモートブランチと同じ状態にします。

$ git reset --hard FETCH_HEAD

あらためて、

$ brew update

これでうまくいきました。


brewコマンドを実行したら/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory


Pythonのバージョンマネージャpyenvをインストールするためにbrewコマンドを実行したら下記のエラーになりました。

$ brew install pyenv
/usr/local/bin/brew: /usr/local/Library/brew.rb: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby: bad interpreter: No such file or directory
/usr/local/bin/brew: line 21: /usr/local/Library/brew.rb: Undefined error: 0

普段Rubyで使わないMacでひさしぶりにでHomebrewを使用したのでいままで気が付かなかったようです。StackOverflow先生に問い合わせたところ、Rubyのパスの”1.8″の部分を”current”に変更しなさいとのことでしたので試みました。
http://stackoverflow.com/questions/24225959/how-to-get-ruby-homebrew-rvm-to-work-on-yosemite

■前提条件

・Mac OS X Yosemite 10.10.5(14F1605)

■対処方法

/usr/local/Library/brew.rbの中を書き換えます。

<変更前>

#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -W0
# encoding: UTF-8
・・・

<変更後>

#!/System/Library/Frameworks/Ruby.framework/Versions/current/usr/bin/ruby -W0	# 変更後
# encoding: UTF-8
・・・

これでうまくいきました。


Contact Form 7 の [承諾確認]([acceptance])でチェックボックスを改行させないようにする


WordPressのお問い合わせフォームプラグイン Contact Form 7において[承諾確認]([acceptance])を設定すると、デフォルトでチェックボックスが改行されてしまいます。

やりたいことは

なのですが、どうしても

こうなっていまいます。

それを改善します。

■前提条件

WordPress 4.4.2
ContactForm7 4.3.1

■対処法

contact-form-7/modules/acceptance.php の

$html = sprintf(
	'<span class="wpcf7-form-control-wrap %1$s"><input %2$s />%3$s</span>',
	sanitize_html_class( $tag->name ), $atts, $validation_error );

return $html;

この部分、この

<span class="wpcf7-form-control-wrap %1$s">・・・・・・・・・</span>

がクセモノです。これを除去します。

$html = sprintf(
	'<input %2$s />%3$s',
	sanitize_html_class( $tag->name ), $atts, $validation_error );

return $html;

これで改行されなくなりました。