Criando um arquivo de instalação independente para pymssql para o CentOS

3

Estou tentando implantar um aplicativo Python em uma máquina que, devido aos requisitos de organização e sistema, não pode ter gcc instalado, por isso preciso criar um arquivo de instalação autônomo para pymssql (normalmente requer FreeTDS e gcc gcc-c++ ).

Eu consegui me livrar do requisito FreeTDS usando o export PYMSSQL_BUILD_WITH_BUNDLED_FREETDS=1 antes de instalar o pymssql , mas ele ainda falha no requisito gcc .

Existe alguma maneira de pré-compilar pymssql para que ele possa ser implantado e instalado em uma máquina sem dependência de FreeTDS nem gcc ?

    
por DeepSpace 20.03.2016 / 10:07

3 respostas

2

Suponho que você esteja usando o sistema CentOS Python, pois seria difícil instalar um python diferente (atualizado) sem acesso a gcc .

Configure uma VM (por exemplo, no VirtualBox) com exatamente a mesma versão do CentOS, hospedada em uma máquina diferente. Nessa VM, instale o gcc necessário e instale virtualenv (eu recomendo fazer isso da fonte, o que você pode instalar com o seu gerenciador de pacotes é muitas vezes desatualizado).

Na VM, crie um ambiente virtual, por exemplo com virtualenv /opt/util/pymssql , esse ambiente virtual terá referências ao python real, mas como você vai movê-lo para um CentOS equivalente, tudo bem.

Ative o ambiente ( source /opt/util/pymssql/bin/activate ) e use pip para instalar todas as bibliotecas necessárias.

Quando tudo estiver instalado e funcionando, tar o /opt/util/pymssql e seus subdiretórios e colocá-lo na máquina "real" do CentOS no mesmo local . Isso deve lhe dar código de trabalho sem um compilador na máquina "real".

O diretório atual (no exemplo /opt/util/pymssql ) para o ambiente virtual não é importante, mas você tem que usar o caminho que será usado na máquina "real", alguns dos arquivos no env virtual terão o caminho codificado.

    
por 20.03.2016 / 10:37
1

A maneira correta de fazer isso é construir seu próprio pacote do CentOS. Parece que houve, ao mesmo tempo, um pacote para pymssql, mas foi abandonado por causa da falta de mantenedores, mas você poderia usar o arquivo de especificação no repositório git do Fedora como ponto de partida:

link

    
por 20.03.2016 / 13:43
0

Configure a VM com o mesmo SO e instale as ferramentas necessárias (gcc) como Anthon sugere, mas em vez de criar e compactar virtualenv (que é uma espécie de hack), construa roda binária e instale essa roda no sistema de destino.

Relacionados:
Como evitar a criação da biblioteca C com meu pacote python?
Crie uma roda / ovo e todas as dependências para um projeto em python

    
por 22.03.2016 / 09:07