CentOS에서 pymssql에 대한 별도의 설치 파일 생성

CentOS에서 pymssql에 대한 별도의 설치 파일 생성

시스템 및 조직 요구 사항으로 인해 설치할 수 없는 컴퓨터에 Python 애플리케이션을 배포하려고 하므로 gcc(일반적으로 필수 및 )에 대한 별도의 설치 파일을 만들어야 합니다.pymssqlFreeTDSgcc gcc-c++

설치 전을 사용하여 해당 요구 사항을 제거했지만 FreeTDS여전히 요구 사항을 충족하지 않습니다.
export PYMSSQL_BUILD_WITH_BUNDLED_FREETDS=1pymssqlgcc

pymssql또는에 의존하지 않는 시스템 에 배포 및 설치할 수 있도록 사전 컴파일할 수 있는 방법이 있습니까 ?FreeTDSgcc

답변1

.gcc

다른 머신에서 호스팅되는 정확히 동일한 CentOS 버전(예: VirtualBox)으로 VM을 설정합니다. 해당 가상 머신에 필요한 것을 설치 gcc한 다음 설치하십시오.virtualenv(저는 소스에서 이 작업을 수행하는 것을 권장합니다. 패키지 관리자를 사용하여 설치할 수 있는 것은 일반적으로 최신 버전이 아닙니다.)

가상 머신에서 다음을 virtualenv /opt/util/pymssql사용하여 가상 환경을 만듭니다.

환경( source /opt/util/pymssql/bin/activate)을 활성화하고 이를 사용하여 pip필요한 모든 라이브러리를 설치하십시오.

모든 것이 설치되고 실행되면 "실제" CentOS 시스템에 해당 하위 디렉터리를 tar배치 합니다./opt/util/pymssql같은 위치에. 이렇게 하면 "실제" 컴퓨터에서 컴파일러 없이 작동하는 코드가 제공됩니다.

가상 환경의 실제 디렉터리(예제 /opt/util/pymssql)는 중요하지 않지만 "실제" 머신에서 사용할 경로를 사용해야 하며, 가상 환경의 일부 파일에는 하드코딩된 경로가 있습니다.

답변2

올바른 접근 방식은 자체 CentOS 패키지를 구축하는 것입니다. pymssql 패키지가 있었던 것 같지만 관리자 부족으로 인해 폐기되었지만 Fedora의 git 저장소에 있는 사양 파일을 시작점으로 사용할 수 있습니다.

http://pkgs.fedoraproject.org/cgit/rpms/pymssql.git/tree/pymssql.spec

답변3

Anthon이 제안한 대로 동일한 OS로 VM을 설정하고 필요한 도구(gcc)를 설치하되, virtualenv(해킹)를 생성하고 압축하는 대신 바이너리 휠을 빌드하고 해당 휠을 대상 시스템에 설치합니다.

관련된:
C 라이브러리를 빌드하기 위해 Python 패키지를 사용하지 않으려면 어떻게 해야 합니까?
Python 프로젝트에 대한 바퀴/계란 및 모든 종속성을 빌드합니다.

관련 정보