Skip to content

Commit e2720c6

Browse files
committed
New intallation options
Former-commit-id: 97883c3d67a0aeb509801fc2436f4578011bd9c6 [formerly c2585066c9b17f735f1bf68672c6f283c6f4518d] [formerly e20075ac8f4d92ca1ee00657710ec3b4a21c6d8d [formerly d4a10a66a21336fb75e9cf118492eb6d7ef8b43b]] [formerly 8d9ee2118594b45cb667fe2f59a76f5cdf185426 [formerly 7d362962354d170fadee68316f756114f27d5616] [formerly 10fd2f623d53eabbf97ef0040401c6654a93b76a [formerly da746df033331e722831a38ac23eb09f3a783c97]]] Former-commit-id: 6dbcef332d477447fa49339246c5d452acc60418 [formerly 69699bb1792c02fad7cbed6cec1ee443b0d7f7a4] [formerly 5cb879ce713a47c23604709bc854be5fe62edaf8 [formerly 10effd1a204cab4f6496b5b6df58fe83c78f8181]] Former-commit-id: c195df32e15d09e083c6077fbfe0d8f398b8cd78 [formerly e93f078637293ab88c0d4b04f4801d4ee64109d2] Former-commit-id: 643144e2ec65e5279dd2a496908edf676b1e0ee8 Former-commit-id: 1ed662b
1 parent 0d7f68e commit e2720c6

1 file changed

Lines changed: 19 additions & 3 deletions

File tree

src/AddOn/PyEnvironment.AddOn.EnsurePip.pas

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ interface
4242
type
4343
[ComponentPlatforms(pidAllPlatforms)]
4444
TPyEnvironmentAddOnEnsurePip = class(TPyEnvironmentCustomAddOn)
45+
private
46+
FVerbose: boolean;
47+
FUpgrade: boolean;
4548
protected
4649
function GetInfo(): TPyPluginInfo; override;
4750
function IsInstalled(): boolean; override;
@@ -51,6 +54,8 @@ TPyEnvironmentAddOnEnsurePip = class(TPyEnvironmentCustomAddOn)
5154
constructor Create(AOwner: TComponent); override;
5255
published
5356
property Triggers default [TPyEnvironmentaddOnTrigger.trAfterSetup];
57+
property Verbose: boolean read FVerbose write FVerbose;
58+
property Upgrade: boolean read FUpgrade write FUpgrade;
5459
end;
5560

5661
implementation
@@ -119,6 +124,7 @@ procedure TPyEnvironmentAddOnEnsurePip.InternalExecute(
119124
LPythonHome: string;
120125
LExecutable: string;
121126
LSharedLibrary: string;
127+
LInput: TArray<string>;
122128
LCmd: IExecCmd;
123129
begin
124130
inherited;
@@ -127,15 +133,23 @@ procedure TPyEnvironmentAddOnEnsurePip.InternalExecute(
127133
LSharedLibrary := TPath.Combine(GetPythonEngine().DllPath,
128134
GetPythonEngine().DllName);
129135

136+
LInput := ['-m', 'ensurepip'];
137+
138+
if FVerbose then
139+
LInput := LInput + ['--verbose'];
140+
141+
if FUpgrade then
142+
LInput := LInput + ['--upgrade'];
143+
130144
LCmd := TExecCmdService.Cmd(
131145
LExecutable,
132146
TExecCmdArgs.BuildArgv(
133-
LExecutable, ['-m', 'ensurepip']),
147+
LExecutable, LInput),
134148
TExecCmdArgs.BuildEnvp(
135149
LPythonHome,
136150
LExecutable,
137151
LSharedLibrary))
138-
.Run([TRedirect.stderr]);
152+
.Run([TRedirect.stdout, TRedirect.stderr]);
139153

140154
TSpinWait.SpinUntil(function(): boolean begin
141155
Result := not LCmd.IsAlive or ACancelation.IsCancelled;
@@ -144,7 +158,9 @@ procedure TPyEnvironmentAddOnEnsurePip.InternalExecute(
144158
ACancelation.CheckCancelled();
145159

146160
if (LCmd.Wait() <> EXIT_SUCCESS) then
147-
raise EPipSetupFailed.Create('PIP setup has failed.' + #13#10 + LCmd.StdErr.ReadAll());
161+
raise EPipSetupFailed.Create('PIP setup has failed.'
162+
+ #13#10
163+
+ LCmd.Output);
148164
end;
149165

150166
end.

0 commit comments

Comments
 (0)