Back-End

21 mai, 2019

Notebooks Jupyter em PHP, além do Python? Sim, é possível

100 visualizações
Publicidade

Fala, pessoal! Tudo bem?

É muito comum que durante nossa jornada de cursos de Big Data, Analytics, Data Science, IA e afins, sejamos apresentados à plataforma Jupyter e aos seus notebooks, não é mesmo?

Jupyter: The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text. Uses include: data cleaning and transformation, numerical simulation, statistical modeling, data visualization, machine learning, and much more.

Acredito que se você já mexeu nessa plataforma, o padrão é usar a linguagem de programação Python, certo? Talvez R também? E se eu te disser que é possível usar várias outras também?

Sim, na data da publicação deste artigo, por exemplo, já havia mais de 40 linguagens suportadas. E o mais impressionante: o PHP é, sim, uma dessas linguagens suportadas no Jupyter Notebook!

Vamos ver então como fazer?

Primeiro: tenha o Jupyter disponível. A maneira mais simples que conheço no Windows é tendo o Anaconda disponível. Você consegue mais informações acessando o site oficial.

  • Anaconda: The World’s Most Popular Python/R Data Science Platform

Tenha o PHP e o Composer com as dependências instaladas

Através deste link, você consegue pegar a última versão disponível do PHP. Para as coisas funcionarem você precisa pelo menos da versão PHP 7.2+.

Vale a pena colocar a pasta do binário do php.exe na sua variável de ambiente PATH. Dessa forma, você pode chamar o comando PHP de qualquer terminal. Talvez te ajude: a versão que usei aqui no meu computador é a PHP 7.2.7 NTS x64.

É necessário também ter instalado o gerenciador de dependências Composer. Mais informações no site oficial. Se instalar ele certinho, vai poder ter o comando composer disponível de qualquer terminal.

E, por último, é necessário que você tenha no PHP a extensão ZMQ. Para isso:

  • Baixe no site da extensão PECL a versão correspondente ao que você tem no seu computador (no meu caso, baixei a 7.2 Non Thread Safe (NTS) x64). Quer saber qual sua versão do PHP? É fácil: no terminal, digite php -v.
  • Na mesma pasta onde está o arquivo php.exe, descompacte o arquivo libzmq.dll
  • Na pasta ext, descompacte o arquivo php_zmq.dll
  • Inclua, no fim do seu arquivo php.ini, a declaração extension=php_zmq.dll

Não sabe onde fica o arquivo php.ini? Para descobrir é fácil, basta digitar o seguinte comando no terminal: php --ini.

Foi na pasta e não achou um arquivo php.ini? Tranquilo – faça uma cópia do arquivo php.ini-development como php.ini e edite-o em seguida.

Quer confirmar se a extensão ZMQ está instalada? Na linha de comando você pode executar php -m para mostrar todas as extensões disponíveis.

Instale o componente Jupyter-PHP (o kernel de PHP para o Jupyter)

No site oficial é possível encontrar mais informações. Em resumo:

Baixar o instalador .phar, entrar na pasta onde baixou pelo terminal, e executar: php jupyter-php-installer.phar install.

Resultado da instalação

E é isso! Se tiver problemas com o composer não acessando a URL do Packagist, pode dar uma olhada neste projeto aqui – nele você encontra tem mais instruções!

Pronto, agora é só reiniciar o seu Jupyter, e quando for criar um notebook, vai encontrar a opção de escolher PHP também (além dos outros que você já tinha, tipo o Python 3).

Aqui vai um exemplo:

Um exemplo de Jupyter Notebook usando o kernel PHP

Se quiser testar no seu próprio ambiente, é só baixar neste link.

  • Por que usar PHP nesse mundo? Não era para estarmos focando mais em Python, R e outras?

Acho muito que é uma questão parecida com o que eu via no passado quando estava bastante envolvido com comunidades e meetups.

Já ouvia o seguinte:

  • “Poxa, Golang seria uma opção muito melhor para IA, por ser mais rápida e etc”

Mas o Python já tinha ganhado a briga, já que os algoritmos matemáticos todos já tinham sido implementados nele, e em Golang, não.

Hoje, pela pesquisa rápida que fiz, Golang ainda não tem ecossistema que se compara ao de R ou Python, mas não quer dizer que não tenha suas vantagens, né?

Entre os pontos positivos do PHP, acredito em usá-lo também para ML e afins, aqui no “Banco X”:

  • Linguagem madura e cada vez mais rápida desde a versão 7.0 (hoje está na 7.3)
  • Ótimo ecossistema, ainda ativa e muito utilizada por diversas grandes empresas
  • Suporte da comunidade e de muitos players, seja para integrações ou para infra
  • Ainda é a mais usada de toda a web (79% em maio, 2019)
  • É uma das plataformas oficialmente homologadas no “Banco X”
  • Tem suporte em toda a infra do “Banco X” atual (desde os servidores IIS com Fastcgi, Linux Apache nos ambientes descentralizados, ou mesmo da infra de Openshift, Docker, etc, do ambiente centralizado)
  • Permitirá que os colegas que já tenham um certo domínio do PHP e seu ecossistema de usar esse conhecimento para esse novo mundo do Data Science, Analytics, IA, Machine Learning, etc.

E você, o que anda fazendo aí na sua área? Bora testar mais essa opção?

O mais importante é compartilhar o que está fazendo, assim todos podemos ganhar e a empresa também!

Podem me chamar para conversar em todos os canais, ok?

Até a próxima. Abraços!

***

Este artigo foi publicado originalmente em RogerioPradoJ.com.