Subscribed unsubscribe Subscribe Subscribe

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

ではではアデュー