回答:
dist-packagesはDebian固有の規約で、Ubuntuなどの派生物にも存在します。モジュールは、Debianパッケージマネージャーから次の場所に移動したときに、dist-packagesにインストールされます。
/usr/lib/python2.7/dist-packages
easy_installおよびpipはパッケージマネージャーからインストールされるため、dist-packagesも使用しますが、パッケージをここに配置します。
/usr/local/lib/python2.7/dist-packages
以下からのDebian Pythonのウィキ:
site-packagesの代わりにdist-packages。DebianパッケージからインストールされたサードパーティのPythonソフトウェアは、site-packagesではなくdist-packagesに入ります。これは、システムのPythonと、手動でインストールするソースのPythonビルドとの競合を減らすためです。
これは、ソースからPythonを手動でインストールする場合、site-packagesディレクトリを使用することを意味します。特にDebianとUbuntuは多くのシステムユーティリティでPythonのシステムバージョンに依存しているため、これにより2つのインストールを別々に保つことができます。
dist-packagesaptと友達が自分のものをインストールするdebian固有のディレクトリでありsite-packages、標準のpipディレクトリです。
問題は、同じパッケージの異なるバージョンが異なるディレクトリに存在するとどうなるかです。
問題の私の解決策は、へdist-packagesのシンボリックリンクを作ることsite-packagesです:
for d in $(find $WORKON_HOME -type d -name dist-packages); do
pushd $d
cd ..
if test -d dist-packages/__pycache__; then
mv -v dist-packages/__pycache__/* site-packages/__pycache__/
rmdir -v dist-packages/__pycache__
fi
mv -v dist-packages/* site-packages/
rmdir -v dist-packages
ln -sv site-packages dist-packages
popd
done
(gnuツールを使用していない場合は、-vオプションを削除してください)。