O SIP está limpando bibliotecas DYLD adicionadas pelo SQLAnywhere17. Precisa dessas bibliotecas para desenvolver em frasco


1

Eu desenvolvo em Python 3.6 e Balão . No momento, estou trabalhando com um banco de dados SQLAnywhere e instalei o pacote sqlanydb do Python. Eu também instalei o driver SQLAnywhere17 para Mac OSX.

Até o início desta semana eu estava desenvolvendo normalmente, até que decidi atualizar meu Mac de Yosemite para High Sierra. Eu não tinha conhecimento do SIP na época e, portanto, talvez tenha tomado uma decisão prematura na atualização.

Desde que eu fiz o upgrade, não consegui me desenvolver normalmente, porque ao acessar os arquivos do SQLAnywhere17, ele adiciona um caminho para o DYLD_LIBRARY_PATH. No entanto, quando eu executo meu aplicativo de flask no servidor de desenvolvimento do flask com

export FLASK_APP=modules
export FLASK_DEBUG=1
flask run

Ele elimina todos os 17 arquivos dyld do SQLAnywhere que foram adicionados ao meu ambiente, e eu recebo um could not load dbcapi erro.

Estou procurando uma solução em que não precise desativar o SIP porque entendo que o propósito da proteção é importante. Gostaria apenas de poder desativá-lo para executar o meu aplicativo de balão.

Meus arquivos e pacotes de sites do Python 3.6 estão localizados em /usr/local. A partir disso artigo Eu aprendi que posso ver quais arquivos estão sendo protegidos pelo SIP com ls -alO. No entanto, quando eu executo este comando /usr/local e todos os diretórios dentro, e parece que nenhum dos arquivos está sendo protegido. o /usr/local diretório em si tem sunlink onde o protected seria em arquivos protegidos SIP. Não tenho certeza do que isso significa.


1
Como você sabe que o SIP é o culpado? Você deve tentar desativá-lo pelo menos temporariamente como um teste. / usr / local é de fato especificamente excluído do SIP.
Wowfunhappy

Sim, bom ponto. Deixe-me tentar isso e voltar para você.
Michael

Desculpe pela resposta tardia. Eu apenas desativei o SIP e executei meu aplicativo de balão usando o método acima. Eu não encontrei o erro, e meu aplicativo de balão foi capaz de rodar bem. Portanto, o SIP parece estar causando esse erro. Então, eu me pergunto se o servidor de desenvolvimento padrão do Flask está usando binários que não estão localizados em /usr/local.
Michael

Parece assim! Eu não estou realmente familiarizado com o Flask, então não posso fornecer uma resposta real. Você poderia tentar desabilitar somente a parte do SIP que você precisa (experimente para ver o que funciona): forums.developer.apple.com/thread/17452
Wowfunhappy
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.