Debian의 dist-packages에서 virtualenv로 Python 패키지를 추가하는 방법은 무엇입니까?

Debian의 dist-packages에서 virtualenv로 Python 패키지를 추가하는 방법은 무엇입니까?

/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/pysidepygtk

답변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_ENVvirtualenv를 사용 하거나 생성하는지 여부는 중요하지 않습니다 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에 연결하는 방법에 따라 다릅니다.

관련 정보