@cvp @enceladus and @JonB , thank you for feedback, it is undoubtedly nice that there is a sharing of ideas and solutions.
So, synthesizing, a solution for my problem is a mix of double __ at the beginning of var name and the use of sys.modules['__main__'].__varname=__varname in external script executed by a user key defined by @JonB script StatusBarMenu.
For those interested, in order to use this script as pythonista_startup with the global variables creation feature using user keys, the procedure is the follow:
1. At line 181 of this script in place of
def a(sender)
print('action from bar1')
insert
def a(sender)
import sys, os
doc_path = os.path.expanduser('~/Documents/tests') #in folder 'tests' I have my external script to execute by touching user key of JonB script
os.chdir(doc_path)
sys.path.append(doc_path)
execfile('my-script-a.py') # 'my-script-a.py' is inside folder '/tests'
app.keyWindow().rootViewController().showAccessoryWithAnimationDuration_(0.5)
- Then create
my-script-a.py in folder ~/Documents/tests with following content (for example):
import sys
__var = 100
sys.modules['__main__'].__var=__var
print(__var)
Well, now when you touch user key of StatusBarMenu related to action a, Pythonista should execute the script my-script-a.py and the variable __var lives in console also after execution of other external scripts and the var can be used inside other external scripts, as it is 100% global now.
My next step is to adapt this solution for sage_interface in order to be able, using user keys with this, to execute different scripts with remote server by sagemathcell (with scipy and other tools not present in Pythonista) and to use global variables, with different names similar to filename of the executed script by sage (to not overwrite content in variables that could be useful during further calculations), in console or in other scripts. For example, if I must execute remotely with sage a script named 'optimization.py' that calculates A and an other script named 'fit.py' that calculates B, the global variables with output of A and B live in console and the name of the global variables could be '__sage-out--optimization' and '__sage-out--fit', and with the powerful word completion feature of Pythonista them can be recalled easly from python console.
Best regards