我正在使用python.sty
下载的包这里。我发现默认的构建路径是使用Python2.7:
\documentclass{article}
\usepackage{python}
\begin{document}
\begin{python}%
import sys
print (sys.version)
\end{python}%
\end{document}
这篇文章给了我2.7.9 (v2.7.9:648dcafa7e5f, Dec 10 2014, 10:10:46) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
我的问题是,我可以将正在使用的 Python 版本更改python.sty
为 Python 3.5 吗?
答案1
对的调用python
在包中是硬编码的。您可以使用python3
补丁来调用它:
\documentclass{article}
\usepackage{python}
\usepackage{etoolbox}
\patchcmd{\endpython}{python }{python3 }{}{}
\begin{document}
\begin{python}
import sys
print (sys.version)
\end{python}
\end{document}
在日志文件中我们发现
runsystem(cat jay.py | python3 > jay.py.out 2> jay.py.err)...executed.
这是 PDF 输出
扩展版本,您可以从一个版本切换到另一个版本;该\setpython
命令遵循正常的作用域规则。
\documentclass{article}
\usepackage{python}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\endpython}{python }{python\python@version\space}{}{}
\newcommand{\setpython}[1]{%
\if3#1\relax
\def\python@version{3}%
\else
\def\python@version{}%
\fi
}
\makeatletter
\setpython{2} % initialize
\begin{document}
\begin{python}
import sys
print (sys.version)
\end{python}
\bigskip
\setpython{3}
\begin{python}
import sys
print (sys.version)
\end{python}
\end{document}
答案2
TEXMFHOME
为您的改编版本创建一个目录:
mkdir -p $(kpsewhich -var TEXMFHOME)/tex/latex/python3/
移居那里
pushd $(kpsewhich -var TEXMFHOME)/tex/latex/python3/
sed -e 's+\(ProvidesPackage{python\)\(}\[\).*\(.*Python in LaTeX\)+\13\22016/06/17 v0.21-3 \3 modified for Python3 by JW+' -e 's+\(\\immediate\\write18{.*\| python\)\( > \\jobname\.py\)+\13\2+' $(kpsewhich python.sty) > python3.sty
popd
然后说
\usepackage{python3}
请注意,这完全没有经过测试 - 我对 Python 几乎一无所知,但python
我的系统上只有 3.5.1。