Commit 12653de920a00858928f38af4f332d6b68415573

Authored by decalage2
1 parent 7b3a713e

mraptor_milter: fixed absolute imports (issue #141)

Showing 1 changed file with 15 additions and 2 deletions
oletools/mraptor_milter.py
... ... @@ -24,7 +24,7 @@ http://www.decalage.info/python/oletools
24 24  
25 25 # === LICENSE ==================================================================
26 26  
27   -# mraptor_milter is copyright (c) 2016 Philippe Lagadec (http://www.decalage.info)
  27 +# mraptor_milter is copyright (c) 2016-2017 Philippe Lagadec (http://www.decalage.info)
28 28 # All rights reserved.
29 29 #
30 30 # Redistribution and use in source and binary forms, with or without modification,
... ... @@ -53,8 +53,9 @@ http://www.decalage.info/python/oletools
53 53 # - archive each e-mail to a file before filtering
54 54 # 2016-08-30 v0.03 PL: - added daemonize to run as a Unix daemon
55 55 # 2016-09-06 v0.50 PL: - fixed issue #20, is_zipfile on Python 2.6
  56 +# 2017-04-26 v0.51 PL: - fixed absolute imports (issue #141)
56 57  
57   -__version__ = '0.50'
  58 +__version__ = '0.51'
58 59  
59 60 # --- TODO -------------------------------------------------------------------
60 61  
... ... @@ -81,6 +82,18 @@ import StringIO
81 82  
82 83 from socket import AF_INET6
83 84  
  85 +# IMPORTANT: it should be possible to run oletools directly as scripts
  86 +# in any directory without installing them with pip or setup.py.
  87 +# In that case, relative imports are NOT usable.
  88 +# And to enable Python 2+3 compatibility, we need to use absolute imports,
  89 +# so we add the oletools parent folder to sys.path (absolute+normalized path):
  90 +_thismodule_dir = os.path.normpath(os.path.abspath(os.path.dirname(__file__)))
  91 +# print('_thismodule_dir = %r' % _thismodule_dir)
  92 +_parent_dir = os.path.normpath(os.path.join(_thismodule_dir, '..'))
  93 +# print('_parent_dir = %r' % _thirdparty_dir)
  94 +if not _parent_dir in sys.path:
  95 + sys.path.insert(0, _parent_dir)
  96 +
84 97 from oletools import olevba, mraptor
85 98  
86 99 from Milter.utils import parse_addr
... ...