우분투 12.04에 lxml 3.1.2와 lxml2 모두 설치

우분투 12.04에 lxml 3.1.2와 lxml2 모두 설치

나는 SO에 이것을 물었다 :https://stackoverflow.com/questions/19852911/lxml-3-1-2-and-lxml2-both-on-ubuntu/19856674#19856674

그러나 아마도 AskUbuntu에 더 적합할 것입니다. 그래서 여기에 다시 재구성되었습니다.

lxml 사이트에서는 우분투에서 lxml2와 최신 버전의 lxml을 모두 가질 수 있다고 제안합니다.

python-libxml2와 함께 lxml 사용하기

공식 libxml2 Python 바인딩과 함께 lxml을 사용하려면(종속성 중 하나가 이를 사용하기 때문일 수 있음) lxml을 정적으로 빌드해야 합니다. 그렇지 않으면 libxml2 라이브러리에 전역 구성이 필요한 위치에서 두 패키지가 간섭하게 되며, 이로 인해 기능이 사라지거나 둘 중 하나에서 충돌이 발생하는 등 모든 종류의 영향을 미칠 수 있습니다. 정적 빌드를 얻으려면 --static-deps 옵션을 setup.py 스크립트에 전달하거나 STATIC_DEPS 또는 STATICBUILD 환경 변수를 true로 설정하여 pip를 실행합니다. 즉, STATIC_DEPS=true pip install lxml STATICBUILD 환경 변수는 동일하게 처리됩니다. STATIC_DEPS 변수에 추가되지만 다른 확장 패키지에서도 사용됩니다.

나는 일반적으로 pip 패키지와 ubuntu 패키지가 어떻게 어울리는지 혼란스러워서 실행을 주저합니다.STATIC_DEPS=true pip 설치 lxml. 설치된 lxml2 패키지가 손상되거나 혼동을 주나요?

SO에 대한 제안은 virtualenv에 새로운 lxml을 설치하는 것이었습니다. 이것이 가장 좋은 방법인 것처럼 보이지만 lxml 사이트에서는 이중 설치도 작동할 것이라고 제안합니다.

일반적으로 apt-get으로 이미 설치된 패키지에 대해 pip(최신 설치를 위해)를 사용하면 어떻게 되나요?

답변1

Ubuntu는 배포판에서 Python을 광범위하게 사용합니다. 이러한 이유로 내 정책은 Ubuntu 제공 버전을 엄격히 그대로 두고 업데이트 관리자나 apt-get을 통해서만 업데이트하는 것입니다. 이런 방식으로 특정 Python 패키지/모듈 버전에 의존하는 일부 Ubuntu 코드가 불안정해질 위험을 방지합니다.

나는 모든 개발 작업을 virtualenv 작업 공간에서 수행하고 작업 중인 모든 애플리케이션에 적합한 작업 공간을 사용하도록 명령줄과 Eclipse를 구성합니다. 따라서 나는 우분투를 방해하지 않으며 우분투도 나를 방해하지 않습니다.

lxml의 이중 설치는 "작동"할 가능성이 높지만 설치가 취약할 수 있습니다. 왜 위험을 감수합니까?

관련 정보