Skip to content

Commit c9a6dda

Browse files
committed
Added the possibility to customize the ProgramName but it does not seem to help with venv.
1 parent b96cd4f commit c9a6dda

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

PythonForDelphi/Components/Sources/Core/PythonEngine.pas

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2247,6 +2247,7 @@ TPythonEngine = class(TPythonInterface)
22472247
procedure Lock;
22482248
procedure Unlock;
22492249
procedure SetPythonHome(const PythonHome: string);
2250+
procedure SetProgramName(const ProgramName: string);
22502251
function IsType(ob: PPyObject; obt: PPyTypeObject): Boolean;
22512252
function GetAttrString(obj: PPyObject; AName: PAnsiChar):PAnsiChar;
22522253
function CleanString(const s : AnsiString) : AnsiString;
@@ -4859,18 +4860,20 @@ procedure TPythonEngine.Initialize;
48594860
if IsPython3000 then begin
48604861
if Assigned(Py_SetProgramName3000) then
48614862
begin
4862-
FProgramNameW := ParamStr(0);
4863+
if FProgramNameW = '' then
4864+
FProgramNameW := ParamStr(0);
48634865
Py_SetProgramName3000(PWideChar(FProgramNameW));
48644866
end
48654867
end else begin
48664868
if Assigned(Py_SetProgramName) then
48674869
begin
4868-
FProgramName := AnsiString(ParamStr(0));
4870+
if FProgramName = '' then
4871+
FProgramName := AnsiString(ParamStr(0));
48694872
Py_SetProgramName(PAnsiChar(FProgramName));
48704873
end
48714874
end;
48724875
AssignPyFlags;
4873-
if FPythonHomeW<>'' then begin
4876+
if FPythonHomeW <> '' then begin
48744877
if IsPython3000 then
48754878
Py_SetPythonHome3000(PChar(FPythonHomeW))
48764879
else
@@ -5139,6 +5142,12 @@ procedure TPythonEngine.SetPythonHome(const PythonHome: string);
51395142
FPythonHome := EncodeString(PythonHome);
51405143
end;
51415144

5145+
procedure TPythonEngine.SetProgramName(const ProgramName: string);
5146+
begin
5147+
FProgramNameW := ProgramName;
5148+
FProgramName := EncodeString(ProgramName);
5149+
end;
5150+
51425151
function TPythonEngine.IsType(ob: PPyObject; obt: PPyTypeObject): Boolean;
51435152
begin
51445153
result := ob^.ob_type = obt;

0 commit comments

Comments
 (0)