파이썬 패키지 설치 프로세스에 약간 혼란스러워합니다. 특히 dist-packages 디렉토리에 설치된 패키지와 site-packages 디렉토리의 차이점은 무엇입니까?
답변
dist-packages는 데비안 고유의 규칙으로 우분투와 같은 파생어에도 있습니다. 모듈은 데비안 패키지 관리자에서 다음 위치로 dist 패키지에 설치됩니다 :
/usr/lib/python2.7/dist-packages
easy_install
그리고 pip
패키지 관리자에서 설치 되기 때문에 dist-package도 사용하지만 패키지를 여기에 넣습니다.
/usr/local/lib/python2.7/dist-packages
로부터 데비안 파이썬 위키 :
사이트 패키지 대신 dist 패키지. 데비안 패키지에서 설치된 타사 Python 소프트웨어는 사이트 패키지가 아닌 dist 패키지로 들어갑니다. 이것은 시스템 Python과 수동으로 설치할 수있는 소스 소스 Python 빌드 간의 충돌을 줄입니다.
즉, 소스에서 Python을 수동으로 설치하면 site-packages 디렉토리가 사용됩니다. 이것은 데비안과 우분투가 많은 시스템 유틸리티를 위해 파이썬의 시스템 버전에 의존하기 때문에 두 설치를 별도로 유지할 수 있습니다.
답변
dist-packages
apt
그리고 친구가 물건을 설치 하는 데비안 특정 디렉토리이며 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
옵션을 제거하십시오 .