[ase-users] Error with tkinter & matplotlib
Clayton Spencer
cfspence at ic.edu
Wed Aug 22 22:46:05 CEST 2018
I'm new to ASE (and also to Python and CentOS 7). Please forgive my
ignorance.
I successfully ran the ethaneNEB.py file. I wanted to view the energy
profile along the converged NEB approximation to the MEP. I modified the
ethaneNEB.py file according to the "Diffusion of Au on Al(100) surface
(NEB)" (https://wiki.fysik.dtu.dk/ase/tutorials/neb/diffusion.html).
Running that file (shown below) with:
$ python ethaneNEB.py > ethaneNEB.out 2>&1 &
produced the follow errors in the .out file:
Traceback (most recent call last):
File "ethaneNEB.py", line 5, in <module>
import matplotlib.pyplot as plt
File
"/home/cfspence/.local/lib/python2.7/site-packages/matplotlib/pyplot.py",
line 115, in <module>
_backend_mod, new_figure_manager, draw_if_interactive, _show =
pylab_setup()
File
"/home/cfspence/.local/lib/python2.7/site-packages/matplotlib/backends/__init__.py",
line 62, in pylab_setup
[backend_name], 0)
File
"/home/cfspence/.local/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py",
line 4, in <module>
from . import tkagg # Paint image to Tk photo blitter extension.
File
"/home/cfspence/.local/lib/python2.7/site-packages/matplotlib/backends/tkagg.py",
line 5, in <module>
from six.moves import tkinter as Tk
File "/home/cfspence/.local/lib/python2.7/site-packages/six.py", line
203, in load_module
mod = mod._resolve()
File "/home/cfspence/.local/lib/python2.7/site-packages/six.py", line
115, in _resolve
return _import_module(self.mod)
File "/home/cfspence/.local/lib/python2.7/site-packages/six.py", line 82,
in _import_module
__import__(name)
ImportError: No module named Tkinter
I get a similar "No module named Tkinter" when running ase gui from the
command line. For reference I'm running on CentOS 7 which uses Python
2.7.5.
Please advise on how to fix the matplotlib and tkinter issues. Thanks, in
advance, for your help!
--Clayton
The modified ethaneNEB.py file is shown below:
+++++++++++++++++++++++++++++++++++++++++++++++++++
from ase.build import molecule
from ase.neb import NEB
from ase.calculators.emt import EMT
from ase.optimize.fire import FIRE as QuasiNewton
import matplotlib.pyplot as plt
from ase.neb import NEBTools
from ase.io import read
# Optimise molecule
initial = molecule('C2H6')
initial.set_calculator(EMT())
relax = QuasiNewton(initial)
relax.run(fmax=0.05)
# Create final state
final = initial.copy()
final.positions[2:5] = initial.positions[[3, 4, 2]]
# Generate blank images
images = [initial]
for i in range(9):
images.append(initial.copy())
for image in images:
image.set_calculator(EMT())
images.append(final)
# Run IDPP interpolation
neb = NEB(images)
neb.interpolate()
# Run NEB calculation
qn = QuasiNewton(neb, trajectory='ethane_linear.traj',
logfile='ethane_linear.log')
qn.run(fmax=0.05)
#Read in the images
images = read('ethane_linear.traj at -11')
nebtools = NEBTools(images)
#Get the calculated barrier and the energy change from inital to final
configuration
Ef, dE = nebtools.get_barrier()
print(Ef, dE)
#Get the barrier without any interpolation between highest images.
Ef, dE = nebtools.get_barrier(fit=FALSE)
print(Ef, dE)
#Create a figure like that coming from ASE-GUI.
fig = nebtools.plot_band()
fig.savefig('ethane-rotationBarrier.png')
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.fysik.dtu.dk/pipermail/ase-users/attachments/20180822/700a2a08/attachment.html>
More information about the ase-users
mailing list