Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Function or Command Suddenly Stops Working
This page may help if something in your project that used to work suddenly stops working.
Python function stops working
Problem: You have been using
plot() in a Sage worksheet, like this:
and getting the usual sine curve. Suddenly, you execute a call to plot() and get the following:
TypeError: 'Graphics' object is not callable
What has happened? The most common reason for a function to stop working is that its name has been inadvertently been reassigned, for example, in some other cell in the worksheet, the following has happened:
plot = line(data_points) # XXX - suppresses plot() function
Solution: Restart your worksheet (or type reset('plot')). Then don't overwrite plot.
Of course, this problem can happen with user-defined functions as well as built-in functions.
System command stops working
Another way things can get overwritten is at the level of system commands.
Problem. Sage command or Sage worksheets start showing strange failures. Many functions work, but some are failing with missing or incompatible library errors, etc.
You may done one of the following and forgot to reset to system default:
- put a custom Sage executable at
- selected a development Sage executable by doing
Solution: For the above cases, respectively:
- remove or rename the entry at
sage_select 8.0(or whatever the current version of sage is)
Access to the Ubuntu terminal gives flexibility, but requires caution. If you make customizations in a project, you might want to check settings occasionally to make sure you still want them all. Things to check for customizations you might have added include:
- system commands superseded in
- python packages locally installed in
- shell aliases or functions overwriting system commands from startup files such as
~/.bash_aliases; check these by running the bash command
typeset -F; note that by default, CoCalc defines a large number of bash functions at login, but most of these have names beginning with a single or double underscore.
It can be helpful to put a message in your
~/.bash_aliases as a reminder of customizations and update it when you make changes, for example:
# in ~/.bash_aliases echo "My customizations in this project: sage_develop, custom version of pyexpect"