ValueError: not enough values to unpack when using [usefamily=R] in pythontex
lbraglia opened this issue · 6 comments
I've no problem using [usefamily=Rcon]
with Rconsole
environment but when it comes to [usefamily=R]
with Rcode
, let's say:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage[utf8]{inputenc}
\usepackage[usefamily=R]{pythontex}
\begin{document}
\title{test}
\maketitle
\tableofcontents
\begin{Rcode}
x = 1
\end{Rcode}
\begin{Rcode}
x*2
\end{Rcode}
\end{document}
pdflatex is ok
l@ambrogio:~$ pdflatex test
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022/Debian) (preloaded format=pdflatex)
restricted \write18 enabled.
entering extended mode
(./test.tex
LaTeX2e <2022-11-01> patch level 1
L3 programming layer <2023-01-16>
(/usr/share/texlive/texmf-dist/tex/latex/base/article.cls
Document Class: article 2022/07/02 v1.4n Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo))
(/usr/share/texlive/texmf-dist/tex/latex/base/fontenc.sty)
(/usr/share/texlive/texmf-dist/tex/generic/babel/babel.sty
(/usr/share/texlive/texmf-dist/tex/generic/babel/txtbabel.def)
(/usr/share/texlive/texmf-dist/tex/generic/babel-english/english.ldf))
(/usr/share/texlive/texmf-dist/tex/generic/babel/locale/en/babel-english.tex)
(/usr/share/texlive/texmf-dist/tex/latex/base/inputenc.sty)
(/usr/share/texlive/texmf-dist/tex/latex/pythontex/pythontex.sty
(/usr/share/texlive/texmf-dist/tex/latex/fvextra/fvextra.sty
(/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty)
(/usr/share/texlive/texmf-dist/tex/latex/fancyvrb/fancyvrb.sty
(/usr/share/texlive/texmf-dist/tex/latex/graphics/keyval.sty))
(/usr/share/texlive/texmf-dist/tex/latex/upquote/upquote.sty
(/usr/share/texlive/texmf-dist/tex/latex/base/textcomp.sty))
(/usr/share/texlive/texmf-dist/tex/latex/lineno/lineno.sty))
(/usr/share/texlive/texmf-dist/tex/generic/xstring/xstring.sty
(/usr/share/texlive/texmf-dist/tex/generic/xstring/xstring.tex))
(/usr/share/texlive/texmf-dist/tex/latex/pgfopts/pgfopts.sty
(/usr/share/texlive/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty
(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
(/usr/share/texlive/texmf-dist/tex/generic/pgf/utilities/pgfkeyslibraryfiltered
.code.tex)))) (/usr/share/texlive/texmf-dist/tex/latex/newfloat/newfloat.sty)
(/usr/share/texlive/texmf-dist/tex/latex/currfile/currfile.sty
(/usr/share/texlive/texmf-dist/tex/latex/kvoptions/kvoptions.sty
(/usr/share/texlive/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty)
(/usr/share/texlive/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty))
(/usr/share/texlive/texmf-dist/tex/latex/filehook/filehook.sty
(/usr/share/texlive/texmf-dist/tex/latex/filehook/filehook-2020.sty))))
(/usr/share/texlive/texmf-dist/tex/latex/xcolor/xcolor.sty
(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg)
(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/pdftex.def)
(/usr/share/texlive/texmf-dist/tex/latex/graphics/mathcolor.ltx))
(/usr/share/texlive/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def)
(./test.aux)
No file pythontex-files-test/test.pytxmcr.
Run PythonTeX to create it.
(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
)
LaTeX Warning: No \author given.
(./test.toc) [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] (./test.aux
) ){/usr/share/texmf/fonts/enc/dvips/cm-super/cm-super-t1.enc}</usr/share/texmf
/fonts/type1/public/cm-super/sfbx1440.pfb></usr/share/texmf/fonts/type1/public/
cm-super/sfrm1000.pfb></usr/share/texmf/fonts/type1/public/cm-super/sfrm1200.pf
b></usr/share/texmf/fonts/type1/public/cm-super/sfrm1728.pfb>
Output written on test.pdf (1 page, 31152 bytes).
Transcript written on test.log.
pythontex
raises an error
l@ambrogio:~$ pythontex test
This is PythonTeX 0.18
multiprocessing.pool.RemoteTraceback:
"""
Traceback (most recent call last):
File "/usr/lib/python3.11/multiprocessing/pool.py", line 125, in worker
result = (True, func(*args, **kwds))
^^^^^^^^^^^^^^^^^^^
File "/usr/share/texlive/texmf-dist/scripts/pythontex/pythontex3.py", line 1722, in run_code
delims, content = block.split('#\n', 1)
^^^^^^^^^^^^^^^
ValueError: not enough values to unpack (expected 2, got 1)
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/bin/pythontex", line 62, in <module>
pythontex.main()
File "/usr/share/texlive/texmf-dist/scripts/pythontex/pythontex3.py", line 2828, in main
do_multiprocessing(data, temp_data, old_data, engine_dict)
File "/usr/share/texlive/texmf-dist/scripts/pythontex/pythontex3.py", line 1390, in do_multiprocessing
result = task.get()
^^^^^^^^^^
File "/usr/lib/python3.11/multiprocessing/pool.py", line 774, in get
raise self._value
ValueError: not enough values to unpack (expected 2, got 1)
Any hint?
That is strange...it works for me. I'd suggest deleting all the temp files created by the document and perhaps also the pythontex-files-<document>
cache, and then trying again. If that doesn't fix it, perhaps it's somehow related to R configuration.
Thank you for your prompt answer. Unfortunately I've tried cleaning with no success; if it helps, after pythontex
runs i've the following files:
l@ambrogio:~/ProjectSnake/templates$ tree
.
|-- analysis.aux
|-- analysis.log
|-- analysis.pdf
|-- analysis.pytxcode
|-- analysis.tex
|-- analysis.toc
|-- Makefile
`-- pythontex-files-analysis
|-- R_default_default.err
|-- R_default_default.out
`-- R_default_default.R
with analysis.pytxcode
=>PYTHONTEX#R#default#default#0#code#####10#
x = 1
=>PYTHONTEX#R#default#default#1#code#####16#
x*2
=>PYTHONTEX:SETTINGS#
version=0.18
outputdir=pythontex-files-analysis
workingdir=.
workingdirset=false
gobble=none
rerun=default
hashdependencies=default
makestderr=false
stderrfilename=full
keeptemps=none
pyfuture=default
pyconfuture=none
pygments=true
pygglobal=:GLOBAL||
fvextfile=-1
pyconbanner=none
pyconfilename=stdin
depythontex=false
pygfamily=py|python3|
pygfamily=pycon|pycon|
pygfamily=sympy|python3|
pygfamily=sympycon|pycon|
pygfamily=pylab|python3|
pygfamily=pylabcon|pycon|
pygfamily=R|r|
R_default_default.R
library(methods)
setwd(".")
pdf(file=NULL)
write("=>PYTHONTEX:STDOUT#0#code#", stdout())
write("=>PYTHONTEX:STDERR#0#code#", stderr())
x = 1
write("=>PYTHONTEX:STDOUT#1#code#", stdout())
write("=>PYTHONTEX:STDERR#1#code#", stderr())
x*2
write("=>PYTHONTEX:DEPENDENCIES#", stdout())
write("=>PYTHONTEX:CREATED#", stdout())
R_default_default.out
> library(methods)
> setwd(".")
> pdf(file=NULL)
> write("=>PYTHONTEX:STDOUT#0#code#", stdout())
=>PYTHONTEX:STDOUT#0#code#
> write("=>PYTHONTEX:STDERR#0#code#", stderr())
>
> x = 1
>
> write("=>PYTHONTEX:STDOUT#1#code#", stdout())
=>PYTHONTEX:STDOUT#1#code#
> write("=>PYTHONTEX:STDERR#1#code#", stderr())
> x*2
[1] 2
>
> write("=>PYTHONTEX:DEPENDENCIES#", stdout())
=>PYTHONTEX:DEPENDENCIES#
> write("=>PYTHONTEX:CREATED#", stdout())
=>PYTHONTEX:CREATED#
>
and R_default_default.err
=>PYTHONTEX:STDERR#0#code#
=>PYTHONTEX:STDERR#1#code#
Finally this is my .Rprofile
options(
## Impostazioni generali
"encoding" = "utf-8",
"width" = 80,
"digits" = 4,
"echo" = TRUE,
"prompt" = "> ",
"continue" = " ",
"menu.graphics" = FALSE,
"stringsAsFactors" = FALSE,
"OutDec" = ".",
"papersize" = "a4",
"save.defaults" = list(ascii=FALSE,compress=TRUE,safe=TRUE),
"example.ask" = FALSE,
"help.try.all.packages" = TRUE,
"device.ask.default" = FALSE,
"help_type" = "text",
## Programmi esterni
"browser" = "/usr/bin/firefox",
"editor" = "/usr/bin/emacs -nw",
"pdfviewer" = "/usr/bin/evince",
"unzip" = "/usr/bin/unzip",
"pager" = "/bin/cat",
"printcmd" = "/usr/bin/lp -o number-up=1",
## Internet
"repos" = c(CRAN = "https://cloud.r-project.org"),
"mailer" = "/usr/sbin/sendmail" ,
"timeout" = 20,
"internet.info" = 0,
## Verbosità miscellanea
"verbose" = FALSE,
"warn" = 1,
"warning.expression" = NULL,
"show.error.messages" = TRUE,
## Opzioni del pacchetto "stat"
"na.action" = "na.omit",
"show.coef.Pvalues" = TRUE,
"show.signif.stars" = TRUE,
## RStata
"RStata.StataPath" = Sys.which("stata-se"),
"RStata.StataVersion" = 16,
## Pacchetti di default
"defaultPackages" = c(
## base
"stats"
, "boot"
, "utils"
, "tools"
, "methods"
, "graphics"
, "grDevices"
, "survival"
, "datasets"
)
)
I suspect that the issue is the "echo" = TRUE
in the profile. Here's my R_default_default.out
:
=>PYTHONTEX:STDOUT#0#code#
=>PYTHONTEX:STDOUT#1#code#
[1] 2
=>PYTHONTEX:DEPENDENCIES#
=>PYTHONTEX:CREATED#
Everything is designed under the assumption that Rscript won't write anything to stdout except what is explicitly printed in the code itself.
And that was the point! Commenting "echo" = TRUE"
stopped the error to be raised. Many thanks for your prompt help, donation incoming :)
I believe that is the first-ever donation for PythonTeX. Thanks!
Many thanks to you for this useful piece of software and keep up the good work! 👍