Quero converter meus notebooks ipython para imprimi-los ou simplesmente enviá-los em formato html. Percebi que já existe uma ferramenta para fazer isso, nbconvert . Embora eu o tenha baixado, não tenho ideia de como converter o notebook, com nbconvert2.py, pois nbconvert diz que ele está obsoleto. nbconvert2.py diz que preciso de um perfil para converter o notebook, o que é? Existe documentação sobre esta ferramenta?
python
jupyter-notebook
ipython
nunzio13n
fonte
fonte
Respostas:
Se você tiver o LaTeX instalado, poderá fazer o download como PDF diretamente do bloco de notas Jupyter com Arquivo -> Fazer download como -> PDF via LaTeX (.pdf) . Caso contrário, siga estas duas etapas.
Para a saída HTML, agora você deve usar Jupyter no lugar de IPython e selecionar Arquivo -> Baixar como -> HTML (.html) ou executar o seguinte comando:
Isso converterá o arquivo de documento Jupyter notebook.ipynb no formato de saída html.
O Google Colaboratory é o ambiente de notebook Jupyter gratuito do Google que não requer configuração e é executado inteiramente na nuvem. Se você estiver usando o Google Colab, os comandos são os mesmos, mas o Google Colab só permite o download dos formatos .ipynb ou .py.
Converta o arquivo html notebook.html em um arquivo pdf chamado notebook.pdf. No Windows, Mac ou Linux, instale wkhtmltopdf . wkhtmltopdf é um utilitário de linha de comando para converter html em pdf usando o WebKit. Você pode fazer o download do wkhtmltopdf na página da Web vinculada ou em muitas distros Linux ele pode ser encontrado em seus repositórios.
Revisão original (agora quase obsoleta): Converta o arquivo do notebook IPython para html.
ipython nbconvert --to html notebook.ipynb
fonte
jupyter
no lugar de,ipython
por exemplojupyter nbconvert --to html notebook.ipynb
Dos documentos :
fonte
nbconvrt
então não posso te ajudar nisso. Espero que apareça alguém que tenha vindo ...CTRL
+P
funciona.nbconvert ainda não foi totalmente substituído por nbconvert2, você ainda pode usá-lo se desejar, caso contrário, teríamos removido o executável. É apenas um aviso de que não corrigimos mais o bug do nbconvert1.
O seguinte deve funcionar:
./nbconvert.py --format=pdf yourfile.ipynb
Se você estiver em uma versão de IPython recente o suficiente, não use a visualização de impressão, apenas use a caixa de diálogo de impressão normal. O corte do gráfico em cromo é um problema conhecido (o Chrome não respeita alguns css de impressão), e funciona muito melhor com o firefox, nem todas as versões ainda.
Quanto ao nbconvert2, ainda é altamente dev e docs precisam ser escritos.
Nbviewer usa nbconvert2, por isso é bastante decente com HTML.
Lista dos perfis disponíveis atualmente:
Fornece os perfis existentes. (Você pode criar o seu próprio, cf futuro doc,
./nbconvert2.py --help-all
deve fornecer alguma opção que você pode usar em seu perfil.)então
$ ./nbconvert2.py [profilename] --no-stdout --write=True <yourfile.ipynb>
E deve escrever seus arquivos (tex), desde que as figuras extraídas em cwd. Sim, eu sei que isso não é óbvio e provavelmente vai mudar, portanto, não doc ...
A razão para isso é que nbconvert2 será principalmente uma biblioteca python onde, em pseudocódigo, você pode fazer:
MyConverter = NBConverter(config=config) ipynb = read(ipynb_file) converted_files = MyConverter.convert(ipynb) for file in converted_files : write(file)
O ponto de entrada virá mais tarde, quando a API estiver estabilizada.
Vou apenas apontar que @jdfreder (perfil github) está trabalhando na exportação tex / pdf / sphinx e é o especialista em gerar PDF a partir do arquivo ipynb no momento em que este livro foi escrito.
fonte
[NbconvertApp] Config file for profile './profile/latex_base.nbcv' not found, giving up
E o nbconvert não me dá diretamente um arquivo pdf, mas um arquivo latex, e eu tenho que processar o arquivo * .tex com o pdflatex, mas é uma boa solução.IPython.nbconvert.exporters.latex
e me pergunto se existe uma maneira de obter a saída em PDF sem a ferramenta de linha de comando. Além disso, quais são as dependências para fazê-lo funcionar? (pandoc, tetex, outras coisas?) E presumo que não seja multiplataforma (não funcionará no Windows). TIA!Também passe a
--execute
bandeira para obter a saídaA prática recomendada é manter a saída do notebook para controle de versão, consulte: Usando notebooks IPython sob controle de versão
Mas então, se você não passar
--execute
, a saída não estará presente no HTML, veja também: Como executar um Notebook .ipynb Jupyter a partir do terminal?Para um fragmento HTML sem cabeçalho: Como exportar um bloco de notas IPython para HTML para uma postagem de blog?
Testado em Jupyter 4.4.0.
fonte
fonte
Para aqueles que não podem instalar wkhtmltopdf em seus sistemas, mais um método além de muitos já mencionados nas respostas a esta pergunta é simplesmente baixar o arquivo como um arquivo html do bloco de notas jupyter, fazer o upload para HTML para PDF e fazer o download os arquivos PDF convertidos a partir daí.
Aqui você tem seu notebook IPython (.ipynb) convertido para os formatos PDF (.pdf) e HTML (.html).
fonte
Maneira GUI
Vá para Arquivos> Baixar como> HTML ou PDF via LaTeX
Em seguida, verifique o arquivo na pasta Downloads. PS: Se o LaTeX tiver algum erro ao compilar o PDF, ele falhará. Se isso acontecer, baixe o arquivo HTML e use http://webpagetopdf.com/ ou qualquer outro serviço semelhante para converter o HTML em PDF.
Maneira de linha de comando
fonte
Se você estiver usando a versão sagemath cloud, você pode simplesmente ir para o canto esquerdo,
selecionar Arquivo → Baixar como → Pdf via LaTeX (.pdf)
Verifique a imagem se desejar.
Captura de tela Converter ipynb em pdf
Se não funcionar por algum motivo, você pode tentar outra maneira.
selecione Arquivo → Visualizar impressão e, em seguida,
clique com o botão direito do mouse na visualização → Imprimir e selecione salvar como pdf.
fonte
Ainda não consigo fazer o pdf funcionar. Os documentos indicam que devo conseguir fazê-lo funcionar com látex, então talvez meu látex não esteja funcionando. http://ipython.org/ipython-doc/rel-1.0.0/interactive/nbconvert.html
$ ipython --version 1.1.0 $ ipython nbconvert --to latex --post PDF myfile.ipynb [NbConvertApp] ... raise child_exception OSError: [Errno 2] No such file or directory $ ipython nbconvert --to pdf myfile.ipynb [NbConvertApp] CRITICAL | Bad config encountered during initialization: [NbConvertApp] CRITICAL | The 'export_format' trait of a NbConvertApp instance must be any of ['custom', 'html', 'latex', 'markdown', 'python', 'rst', 'slides'] or None, but a value of u'pdf' was specified.
No entanto, o HTML funciona muito bem com 'slides' e é lindo!
$ ipython nbconvert --to slides myfile.ipynb ... [NbConvertApp] Writing 215220 bytes to myfile.slides.html
// Atualização 2014-11-07Fri .: A sintaxe IPython v3 difere, é mais simples;
$ ipython nbconvert --to PDF myfile.ipynb
Em todos os casos, parece que estava faltando a biblioteca 'pdflatex'. Estou investigando isso.fonte
Você pode fazer isso primeiro convertendo o bloco de notas em HTML e depois no formato PDF:
Seguindo as etapas que implementei em: SO: Ubuntu, notebook Anaconda-Jupyter, Python 3
1 Salvar Notebook em formato HTML:
Inicie o bloco de notas jupyter que deseja salvar no formato HTML. Primeiro salve o bloco de notas corretamente para que o arquivo HTML tenha uma versão salva mais recente de seu código / bloco de notas.
Execute o seguinte comando no próprio notebook:
!jupyter nbconvert --to html your_notebook_name.ipynb
Após a execução, irá criar uma versão HTML do seu bloco de notas e salvá-la no diretório de trabalho atual. Você verá que um arquivo html será adicionado ao diretório atual com o
your_notebook_name.html
nome(
your_notebook_name.ipynb
->your_notebook_name.html
).2 Salve o html como PDF:
your_notebook_name.html
arquivo (clique nele). Ele será aberto em uma nova aba do seu navegador.Observe que, na opção de impressão, também temos a flexibilidade de selecionar uma parte de um caderno para salvar em formato pdf.
fonte
Outras abordagens sugeridas:
Usando o 'Imprimir e selecione salvar como PDF. do seu arquivo HTML resultará na perda de bordas, destaque de sintaxe, corte de plotagens, etc.
Algumas outras bibliotecas mostraram-se quebradas quando se trata de usar versões obsoletas.
Solução: Uma opção melhor e mais fácil é usar um conversor online que irá converter a versão * .html do seu * .ipynb para * .pdf.
Passos:
Carregue o arquivo * .html recém-criado aqui e selecione a opção HTML para PDF.
Seu arquivo pdf agora está pronto para download.
Agora você tem arquivos .ipynb, .html e .pdf
fonte
Tenho procurado uma maneira de salvar notebooks como html, pois sempre que tento fazer o download como html com minha nova instalação do Jupyter, sempre recebo um
500 : Internal Server Error The error was: nbconvert failed: validate() got an unexpected keyword argument 'relax_add_props'
erro. Curiosamente, descobri que baixar como html é tão simples quanto:Sem visualização de impressão, sem impressão, sem nbconvert. Usando o Jupyter
Version: 1.0.0
. Apenas uma sugestão para experimentar (obviamente nem todas as configurações são iguais).fonte
Acho que o método mais fácil de converter um notebook que está na web em pdf é primeiro visualizá-lo no serviço da web nbviewer . Você pode então imprimi-lo em um arquivo pdf. Se o notebook estiver em sua unidade local, carregue-o primeiro em um repositório github e use seu url para o nbviewer.
fonte
Eu combinei algumas respostas acima em python embutido que você pode adicionar a ~ / .bashrc ou ~ / .zshrc para compilar e converter muitos blocos de notas em um único arquivo pdf
function convert_notebooks(){ # read anything on this folder that ends on ipynb and run pdf formatting for it python -c 'import os; [os.system("jupyter nbconvert --to pdf " + f) for f in os.listdir (".") if f.endswith("ipynb")]' # to convert to pdf u must have installed latex and that means u have pdfjam installed pdfjam * }
fonte
A versão python simples da resposta de partizanos .
import os [os.system("jupyter nbconvert --to pdf " + f) for f in os.listdir(".") if f.endswith("ipynb")]
fonte
--template report
como uma opção adicional também compila um ToC para o pdf resultante pegando os diferentes títulos de marcação no bloco de notas.notebook-as-pdfInstall
python -m pip install notebook-as-pdf pyppeteer-install
Use-o
Você também pode usá-lo com nbconvert:
jupyter-nbconvert --para PDFviaHTML filename.ipynb
que criará um arquivo chamado filename.pdf.
ou pip instalar notebook-as-pdf
criar pdf do notebook jupyter-nbconvert-toPDFviaHTML
fonte
Você pode usar este serviço online simples. Suporta HTML e PDF.
fonte
A maneira mais simples é 'Ctrl + P'> salvar como 'pdf'. É isso aí.
fonte