Criar um script python que instalar módulos python e executar alguns comandos

votos
-1

Eu quero criar um wrapper fino ao redor esta biblioteca https://github.com/jupyter-incubator/sparkmagic#installation

Como você pode ver no link, o passo de instalação requer

  1. instalar alguns pacotes com a semente
  2. executar alguns comandos do tipo jupyter enable ...oujupyter-kernelspec install
  3. arquivo de configuração personalizada que eu quero gerar e colocar no lugar correto

Estou verificando quais as opções que tenho para fazer a instalação tão automático quanto chamar um script. Até agora eu tenho veio criar um script com todos estes comandos. Desta forma, ele funciona com um simples install.sh, mas eu poderia ter problemas desde que eu não sei qual binários python para usar. Se um usuário quiser instalar o lib para python2 ou python3 ele não pode ter essa escolha a menos que ele toca o script.

Eu, em seguida, tentou usar setup.pye substituir a cmdclassinserir código personalizado

from setuptools import setup
from setuptools.command.develop import develop
from setuptools.command.install import install


class PostDevelopCommand(develop):
  Post-installation for development mode.
  def run(self):
    develop.run(self)
    print(do things)

class PostInstallCommand(install):
  Post-installation for installation mode.
  def run(self):
    install.run(self)
    print(do things)

setup(
  ...
  install_requires=['sparkmagic'],
  cmdclass={
    'develop': PostDevelopCommand,
    'install': PostInstallCommand,
},

...
)

mas as impressões personalizadas trabalhou apenas durante a execução python setup.py install, mas não parapip install

Gostaria de fazer este último trabalho opção, mas se isso não é o padrão de direito de fazer esse tipo de coisas, você poderia me sugerir que caminho seguir?

Publicado 10/10/2019 em 00:40
fonte usuário
Em outras línguas...                            


1 respostas

votos
0

A questão não é com pip installdiretamente, mas com rodas . Projetos empacotados como roda não pode ter instalar passos personalizado. Veja por exemplo esta discussão . Desde pip prefere trabalhar com rodas, construindo-los localmente, se necessário, os seus passos personalizados não são executados no momento da instalação. Há provavelmente formas de prevenir a etapa roda embora.

Sabendo disso, você provavelmente deve seguir o conselho de Janeiro Vlcinsky em seu comentário a sua resposta a esta pergunta: Pós script de instalação após a instalação de uma roda .

  • Adicionar um setuptools ponto de entrada do console ao seu projeto (vamos chamá-lo myprojectconfigure). Talvez você preferir usar os distutils script apresentam vez.

  • Instrua os usuários de seu pacote para executá-lo imediatamente após a instalação do pacote ( pip install myproject && myprojectconfigure).

  • Eventualmente pensar sobre o fornecimento de myprojectconfigure --uninstallbem.

Respondeu 10/10/2019 em 14:56
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more