\documentclass{article}
\usepackage{ifxetex,ifluatex}
\newif\ifxetexorluatex
\ifxetex
\xetexorluatextrue
\else
\ifluatex
\xetexorluatextrue
\else
\xetexorluatexfalse
\fi
\fi
\ifxetexorluatex
\usepackage{fontspec}
\else
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\fi
\usepackage{lmodern}
\usepackage[margin=1in]{geometry}
\usepackage{microtype}
\usepackage{graphicx}
\usepackage{pythontex}
\usepackage[svgnames]{xcolor}
\usepackage{hyperref}
\hypersetup{colorlinks=true,urlcolor=Green,linkcolor=blue}
\newcommand{\pytex}{Python\TeX}
\begin{document}
\section{Testing PythonTeX}
\begin{pycode}
print(r'\begin{center}')
print(r'\textit{A message from Python!}')
print(r'\end{center}')
\end{pycode}
pyconsole test
\begin{pyconsole}
var = 1 + 1
var
\end{pyconsole}
\subsection{external lib}
\begin{pycode}
import sys, os
print(sys.version)
#sys.path.insert(0, os.path.abspath('.'))
print(r'\begin{itemize}')
for p in sys.path:
print(rf'\item \verb|{p}|')
print(r'\end{itemize}')
import ext_code
print(ext_code)
from ext_code import foo
print(foo)
\end{pycode}
\subsection{Symbolic computing with SymPy}
\begin{sympyblock}
phi = Symbol(r'\phi')
h = Integral(exp(-phi**2), (phi, 0, oo))
\end{sympyblock}
\[\sympy{h}=\sympy{h.doit()}\]
\subsection{Plotting}
\begin{pyconsole}
import matplotlib
matplotlib.use('pgf')
import numpy as np
import matplotlib.pyplot as plt
xx = np.random.randn(1000)
xx = np.sort(xx)
plt.plot(xx)
plt.savefig('myplot.pdf', bbox_inches='tight')
\end{pyconsole}
\begin{center}
\includegraphics{myplot.pdf}
\end{center}
\end{document}