You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
%% Use a single expression to find the Python executable
799
+
%% Searches for pythonX.Y, python3, python in sys.prefix/bin (Unix)
800
+
%% or python.exe in sys.prefix (Windows)
801
+
Expr= <<"(lambda: (__import__('os').path.join(__import__('sys').prefix, 'python.exe') if __import__('sys').platform == 'win32' and __import__('os').path.isfile(__import__('os').path.join(__import__('sys').prefix, 'python.exe')) else next((p for p in [__import__('os').path.join(__import__('sys').prefix, 'bin', f'python{__import__(\"sys\").version_info.major}.{__import__(\"sys\").version_info.minor}'), __import__('os').path.join(__import__('sys').prefix, 'bin', 'python3'), __import__('os').path.join(__import__('sys').prefix, 'bin', 'python')] if __import__('os').path.isfile(p)), 'python3')))()">>,
Copy file name to clipboardExpand all lines: test/py_venv_SUITE.erl
+3-18Lines changed: 3 additions & 18 deletions
Original file line number
Diff line number
Diff line change
@@ -62,24 +62,9 @@ end_per_suite(_Config) ->
62
62
init_per_group(_Group, Config) ->
63
63
%% Get Python executable path from the running interpreter
64
64
%% Note: sys.executable returns beam.smp when embedded, so we find the actual Python
65
-
Code= <<"
66
-
import sys, os
67
-
_python_path = 'python3' # default
68
-
ver = f'python{sys.version_info.major}.{sys.version_info.minor}'
69
-
for path in [
70
-
os.path.join(sys.prefix, 'bin', ver),
71
-
os.path.join(sys.prefix, 'bin', 'python3'),
72
-
os.path.join(sys.prefix, 'bin', 'python'),
73
-
]:
74
-
try:
75
-
if os.path.isfile(path) and os.access(path, os.X_OK):
76
-
_python_path = path
77
-
break
78
-
except:
79
-
pass
80
-
">>,
81
-
ok=py:exec(Code),
82
-
{ok, PythonPath} =py:eval(<<"_python_path">>),
65
+
%% Use a single expression to avoid any exec issues
66
+
Expr= <<"(lambda: next((p for p in [__import__('os').path.join(__import__('sys').prefix, 'bin', f'python{__import__(\"sys\").version_info.major}.{__import__(\"sys\").version_info.minor}'), __import__('os').path.join(__import__('sys').prefix, 'bin', 'python3'), __import__('os').path.join(__import__('sys').prefix, 'bin', 'python')] if __import__('os').path.isfile(p)), 'python3'))()">>,
0 commit comments