mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Fix for ansiballz filenames conflicting with python stdlib modules
The AnsiBallZ wrapper is transferred to the remote machine with a filename similar to the Ansible-module it runs. For modules like copy and tempfile, this can end up conflicting with stdlib modules on the remote machine depending on how python is setup there. We have a little bit of code in the wrapper to deal with this by removing the path that the ansible module resides in from sys.path. On MacOSX, that code was having a problem. The path the module ends up in included a symlinked directory so we were looking for a path in sys.path but we had to look for the unsymlinked path instead. Fix that by using os.path.realpath() instead of os.path.abspath()
This commit is contained in:
parent
2de404e90a
commit
15902f2496
1 changed files with 2 additions and 2 deletions
|
@ -121,11 +121,11 @@ import __main__
|
|||
# stdlib module
|
||||
scriptdir = None
|
||||
try:
|
||||
scriptdir = os.path.dirname(os.path.abspath(__main__.__file__))
|
||||
scriptdir = os.path.dirname(os.path.realpath(__main__.__file__))
|
||||
except (AttributeError, OSError):
|
||||
# Some platforms don't set __file__ when reading from stdin
|
||||
# OSX raises OSError if using abspath() in a directory we don't have
|
||||
# permission to read.
|
||||
# permission to read (realpath calls abspath)
|
||||
pass
|
||||
if scriptdir is not None:
|
||||
sys.path = [p for p in sys.path if p != scriptdir]
|
||||
|
|
Loading…
Reference in a new issue