| """By using execfile(this_file, dict(__file__=this_file)) you will |
| activate this virtualenv environment. |
| |
| This can be used when you must use an existing Python interpreter, not |
| the virtualenv bin/python |
| """ |
| |
| try: |
| __file__ |
| except NameError: |
| raise AssertionError( |
| "You must run this like execfile('path/to/activate_this.py', dict(__file__='path/to/activate_this.py'))") |
| import sys |
| import os |
| |
| old_os_path = os.environ.get('PATH', '') |
| os.environ['PATH'] = os.path.dirname(os.path.abspath(__file__)) + os.pathsep + old_os_path |
| base = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) |
| if sys.platform == 'win32': |
| site_packages = os.path.join(base, 'Lib', 'site-packages') |
| else: |
| site_packages = os.path.join(base, 'lib', 'python%s' % sys.version[:3], 'site-packages') |
| prev_sys_path = list(sys.path) |
| import site |
| site.addsitedir(site_packages) |
| sys.real_prefix = sys.prefix |
| sys.prefix = base |
| # Move the added items to the front of the path: |
| new_sys_path = [] |
| for item in list(sys.path): |
| if item not in prev_sys_path: |
| new_sys_path.append(item) |
| sys.path.remove(item) |
| sys.path[:0] = new_sys_path |