I have a module "B", I want to run it from a script "C", and I want to call global variables in "B", as they were in the "C" root. Another problem is if I imported sys in "B" when I run "C" it doesn't see sys
# NameError: global name 'sys' is not defined #
What shall I do?
When you import a module B (like import B), every line in B will be interpreted.  I assume this is what you mean when you say you want to run it.  To reference members in B's namespace, you can get them like:
B.something_defined_in_B.
If you wish to use sys explicitly in C, you will need to import it within C as well.
How do you run python scripts from other script and have their root in my root?