@@ -31,6 +31,7 @@ def run_python(args):
3131 import os
3232 import sys
3333 import time
34+ from pathlib import Path
3435
3536 startup_debug = os .environ .get ("NEW_RELIC_STARTUP_DEBUG" , "off" ).lower () in ("on" , "true" , "1" )
3637
@@ -42,10 +43,11 @@ def log_message(text, *args):
4243
4344 log_message ("New Relic Admin Script (%s)" , __file__ )
4445
45- log_message ("working_directory = %r" , os . getcwd ( ))
46+ log_message ("working_directory = %r" , str ( Path . cwd () ))
4647 log_message ("current_command = %r" , sys .argv )
4748
48- log_message ("sys.prefix = %r" , os .path .normpath (sys .prefix ))
49+ sys_prefix = str (Path (sys .prefix ).resolve ())
50+ log_message ("sys.prefix = %r" , sys_prefix )
4951
5052 try :
5153 log_message ("sys.real_prefix = %r" , sys .real_prefix )
@@ -61,26 +63,29 @@ def log_message(text, *args):
6163 if name .startswith ("NEW_RELIC_" ) or name .startswith ("PYTHON" ):
6264 log_message ("%s = %r" , name , os .environ .get (name ))
6365
64- from newrelic import __file__ as root_directory
66+ import newrelic
6567
66- root_directory = os .path .dirname (root_directory )
67- boot_directory = os .path .join (root_directory , "bootstrap" )
68+ root_directory = Path (newrelic .__file__ ).parent
69+ boot_directory = root_directory / "bootstrap"
70+
71+ root_directory = str (root_directory )
72+ boot_directory = str (boot_directory )
6873
6974 log_message ("root_directory = %r" , root_directory )
7075 log_message ("boot_directory = %r" , boot_directory )
7176
7277 python_path = boot_directory
7378
7479 if "PYTHONPATH" in os .environ :
75- path = os .environ ["PYTHONPATH" ].split (os .path . pathsep )
80+ path = os .environ ["PYTHONPATH" ].split (os .pathsep )
7681 if boot_directory not in path :
77- python_path = f"{ boot_directory } { os .path . pathsep } { os .environ ['PYTHONPATH' ]} "
82+ python_path = f"{ boot_directory } { os .pathsep } { os .environ ['PYTHONPATH' ]} "
7883
7984 os .environ ["PYTHONPATH" ] = python_path
8085
8186 os .environ ["NEW_RELIC_ADMIN_COMMAND" ] = repr (sys .argv )
8287
83- os .environ ["NEW_RELIC_PYTHON_PREFIX" ] = os . path . realpath ( os . path . normpath ( sys . prefix ))
88+ os .environ ["NEW_RELIC_PYTHON_PREFIX" ] = sys_prefix
8489 os .environ ["NEW_RELIC_PYTHON_VERSION" ] = "." .join (map (str , sys .version_info [:2 ]))
8590
8691 # Heroku does not set #! line on installed Python scripts
@@ -91,17 +96,17 @@ def log_message(text, *args):
9196 # this script in preference to that used to execute this
9297 # script.
9398
94- bin_directory = os . path . dirname (sys .argv [0 ])
99+ bin_directory = Path (sys .argv [0 ]). parent
95100
96101 if bin_directory :
97- python_exe = os . path . basename (sys .executable )
98- python_exe_path = os . path . join ( bin_directory , python_exe )
99- if not os . path . exists (python_exe_path ) or not os .access (python_exe_path , os .X_OK ):
102+ python_exe = Path (sys .executable ). name
103+ python_exe_path = bin_directory / python_exe
104+ if not python_exe_path . exists () or not os .access (python_exe_path , os .X_OK ):
100105 python_exe_path = sys .executable
101106 else :
102107 python_exe_path = sys .executable
103108
104- log_message ("python_exe_path = %r" , python_exe_path )
105- log_message ("execl_arguments = %r" , [python_exe_path , python_exe_path ] + args )
109+ log_message ("python_exe_path = %r" , str ( python_exe_path ) )
110+ log_message ("execl_arguments = %r" , [python_exe_path , python_exe_path , * args ] )
106111
107112 os .execl (python_exe_path , python_exe_path , * args ) # noqa: S606
0 commit comments