2014-05-12 3 views
4

저는 클러스터 시스템이 파이썬과 함께 작동하고 있고 일부 모듈은 해당 시스템에 설치되어 있습니다 -하지만 가장 최신 버전의 모듈을 사용하고 싶었습니다 - 그것은 이전 버전에없는 여러 가지 방법이있다, 그래서 그것을 구축하고 내가에 액세스 할 수있는 영역에서 로컬 deps 것 : 내가 클러스터 내 파이썬 스크립트를 실행할 때 시도 할 것이라는 점을 보장 할 수 있습니다 방법시스템 설치 모듈 (Python 2.xx) 대신 로컬 모듈 사용

# From my home directory: /gpfs/env/yrq12edu 

# Get the source I need for the up to date version of the module I want to install locally. 
svn co svn://svn.code.sf.net/p/simupop/code/trunk simuPOP 

# Install PCRE stuff... 
cd pcre-8.34 
./configure --prefix=/gpfs/env/yrq12edu/pcre_install 
make 
make install 
export PATH=/gpfs/env/yrq12edu/pcre_install/bin:$PATH 
export LD_LIBRARY_PATH=/gpfs/env/yrq12edu/pcre_install/lib:$LD_LIBRARY_PATH 
cd .. 

# Install Swig Stuff... 
cd swig-3.0.0 
./configure --prefix=/gpfs/env/yrq12edu/swig_install 
make 
make install 
export PATH=/gpfs/env/yrq12edu/swig_install/bin:$PATH 
cd .. 

export PYTHONPATH=/gpfs/env/yrq12edu/PythonModules/lib/python2.7/site-packages 

# Build the up to date simuPOP module I need locally... 
cd simuPOP 
python setup.py install --prefix=/gpfs/env/yrq12edu/PythonModules 

을 시스템 모듈이 아닌 내 로컬 모듈을 사용 하시겠습니까? 나는 분명히 모듈을 로컬에서로드 할 수 있도록해야한다는 것을 알고있는 빌드 프로세스 중에 PYTHONPATH를 변경했지만 시스템에 이전 버전이 설치되어 있거나 로컬로 설치된 새 버전을 선택할 때로드 될지 궁금해했습니다. 파이썬은 로컬 하나를 선호하고 그것을 대신로드 할 것인가? 아니면 강제로 옵션을 지정해야합니까? the docs 파이썬에 따르면

덕분에, 벤 W.

+4

Virtualenv는 여러 버전을 처리해야하는 경우 항상 친구입니다. 나는 그것을 갈 것입니다. – Danstahr

답변

0

(가)가 사용할 수에 내장 된 모듈의 경우로드됩니다. 그렇지 않으면 sys.path (현재 디렉토리로 시작하는)의 각 경로를 조사합니다.

그러나 올바르게 읽으면 표준 모듈이 기본 제공 모듈과 다릅니다. 표준 모듈은 sys.path를 보면 발견 할 수 있으므로 sys.path의 시작 부분에 경로를 넣으면 파이썬이 표준 모듈 대신 모듈을 가져옵니다.