os-ken/ryu/contrib/__init__.py
YAMAMOTO Takashi cdd7084b94 ryu.contrib: Be explicit about sys.path modification
Avoid the automatic modification of sys.path because it hurts
ryu-as-a-library use cases.
An example is the recent versions of neutron OVS-agent,
which optionally imports OVS python bindings, and ends up to
use a wrong copy in ryu.contrib.ovs.

Signed-off-by: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
2015-04-18 08:56:19 +09:00

24 lines
568 B
Python

import sys
_orig_sys_path = None
def update_module_path():
# Adjust module loading path for third party libraries
import os
global _orig_sys_path
_orig_sys_path = sys.path[:]
for path in __path__:
if path in sys.path:
sys.path.remove(path)
path = os.path.abspath(path)
if path in sys.path:
sys.path.remove(path)
sys.path.insert(0, path) # prioritize our own copy than system's
def restore_module_path():
global _orig_sys_path
sys.path = _orig_sys_path
_orig_sys_path = None