/usr/share/pyshared/
/usr/lib/pythonX.Y/dist-packages/
또는 (예를 들어 python-numpy
) 에 일부 Python 패키지가 있는 경우 python-scipy
패키지를 virtualenv에 추가하는 방법은 무엇입니까?
virtualenv에 패키지를 추가할 때 setpy.py
"일반적인" Python 설치 방법(등)을 사용하여 설치해야 합니까, 아니면 자체 설치 방법이 있습니까?
기본적으로 복잡한 C 확장( numpy
, scipy
등 )이 포함된 Python 패키지를 virtualenv에 쉽게 추가할 수 있기를 원합니다 .pyQt/pyside
pygtk
답변1
지적했듯이 일반적으로 바퀴를 만드는 것이 가장 좋습니다. 특히 정기적으로 다시 설치하는 경우 더욱 그렇습니다.
이것은 Python용 gtk 바인딩에서는 작동하지 않습니다. 코드를 테스트할 방법이 필요합니다 tox
(--no-site-packages를 사용하여 virtualenv를 빌드합니다). 테스트 목적으로는 관련 시스템 설치 버전에 연결하는 것만으로도 충분하지만 site-packages
/ 의 모든 내용을 연결 하는 것은 아닙니다 dist-packages
.
이를 위해 설치 가능한 패키지(ruamel.venvgtk
), Debian 기반 시스템(Ubuntu, Linux Mint)에서 Python2.7 및 Python3.4에 대한 올바른 링크를 설정합니다. 프로그램 설정 중에 이 작업이 수행되므로 프로그램 변경이 필요하지 않습니다. 파일 tox.ini
의 일부는 deps
다음과 같습니다.
deps =
pytest
ruamel.venvgtk
생성된 모든 virtualenv에 대해 관련 링크가 pip
설치되고 생성됩니다 ruamel.venvgtk
.
답변2
예, virtualenv가 활성화되면 "일반적인" Python 설치 방법( distutils )을 사용 python setup.py install
하거나 virtualenv 인식 도구(예 pip install package
: .
설치하는 패키지 버전은 virtualenv의 활성 패키지 버전이 됩니다. virtualenv MY_ENV
virtualenv를 사용 하거나 생성하는지 여부는 중요하지 않습니다 virtualenv --no-site-packages MY_ENV
. 첫 번째 경우, 시스템 Python에 설치된 모든 패키지는 virtualenv에서 사용할 수 있지만 virtualenv가 활성화되어 있는 동안 virtualenv에 설치하는 모든 패키지는 시스템 Python의 버전을 차단합니다. 두 번째 경우에는 표준 라이브러리 패키지와 여기에 설치된 모든 항목만 포함하는 virtualenv에 격리된 Python 환경이 있습니다.
Numpy 및 Scipy와 같은 패키지는 Linux에서 사전 빌드된 바이너리를 제공하지 않으므로 패키지 관리자가 제공하는 버전을 사용하지 않으려면 직접 쉽게 빌드해야 합니다.
답변3
이 질문은 1년 넘게(2014년 3월 기준) 활동이 없었고, 아무도 답변을 해주지 않아서 어떻게 해결했는지 적어보겠습니다.
소스 설치 방법이 virtualenvs(numpy/scipy, pyside)를 따르는 패키지의 경우 휠을 사용하여 각 venv에서 다시 빌드되는 것을 방지하세요.
GTK를 지원하지 않는 패키지의 경우 Python에 연결하는 방법에 따라 다릅니다.