virtualenv の --no-site-packages オプションを間違って覚えてた
こんにちわこんにちわ。唐突ですが、皆さんvirtualenv 使ってますか?今まではvirtualenv を使うときにシステムに入ってるsite-packagesを使わないように、以下のようなオプション指定していました。
$ virtualenv --no-site-package hoge
ところが、社内の先生 id:shimizukawa (社内で先生とは不思議な表現だが、先生は先生なので大丈夫だ問題ない) に正しくは「--no-site-packages」だよ。と教えてもらいました。
え?けど期待するように動いてましたけど?て言ったら、「愛されゆるふわプログラマー」で皆さんおなじみの id:feiz 先輩が「オプションが前方一致なんじゃない?」と教えてもらいました。
えーまじかー。と思って、調べてみたら確かに「前方一致」だった・・・orz
一番短くて、「--no」だけでも 「--no-site-packages」が適用されるのを確認した(どうでもいい)
$ virtualenv --no hoge
余談
- どちらかというとこっちの方が大事な話ですが、virtualenv は1.7 から「--no-site-packages」を指定しなくてもデフォルトの挙動でシステムのsite-packagesが使われないようになりました。代わりに、システムのsite-packagesを利用するための「 --system-site-packages」というオプションが追加されています。
- Changes & News — virtualenv 1.7 documentation
ちなみに、1.7で「--no-site-packages」オプションを指定すると下記のように、「もうそれ非推奨だぜ。」と言われます。
$ virtualenv --no-site-packages hoge The --no-site-packages flag is deprecated; it is now the default behavior. New python executable in hoge/bin/python
ではではアデュー