basically, global isn't a bad thing. In more
traditional languages like java / C#, classes are
globals the provide things to instantiate objects.
In javascript, you need some object to be global
that provides access to functions, or "classes".
What you don't want to do, generally, is
introduce functions or variables into the global
namespace ( or window ) unless they have a good
reason for being there.

I just tried this from a clean checkout of a project that uses npm:
Bundle your app to produce a tar.gz file in another directory.
When you extract your tar.gz file you should have a directory called
bundle.
Your custom npm modules will be located in
bundle/programs/server/npm/npm-container/node_modules/
To install fibers do: cd bundle/programs/server/ && npm
install

Your problem is not just with the imports, but with the fact that you
are running __init__.py as a script. When you run a script, Python
adds the directory containing the script to the front of sys.path, and
this globally affects all subsequent imports.
There is no way to customize anything if you are directly running a
file that you don't want to modify. You can't do any sneaky sys.path
manipu

This shouldn't stop your app from starting. While it is an error and
known bug, it only shows up in the logs & does not crash or stop
your Meteor app.
Its a bit of a nuisance, these bots scan entire IP blocks for open
proxies. They don't cause any harm besides the error in your logs.

On the server, Meteor.users can only be invoked within the context of
a method. So it makes sense that it won't work in Meteor.startup. The
warning message is, unfortunately, not very helpful. You have two
options:
try/catch
You can modify your autoValue to catch the error if it's called from
the wrong context:
autoValue: function() {
try {
var name = Meteor.user().profile.name;
retur