Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.lang.python > #7863
| From | jak <nospam@please.ty> |
|---|---|
| Newsgroups | it.comp.lang.python |
| Subject | Re: Pip on WinXp |
| Date | 2023-08-08 22:50 +0200 |
| Organization | A noiseless patient Spider |
| Message-ID | <uau9rj$3huap$1@dont-email.me> (permalink) |
| References | (2 earlier) <u85oam$rmfs$1@dont-email.me> <u8emst$2618e$1@dont-email.me> <u8m9c3$39no2$1@dont-email.me> <5f8162be-a6f4-1837-6e82-dce91e0eaf96@please.ty> <uaspuu$39mev$1@dont-email.me> |
News@tin.it.no ha scritto:
> "jak" <nospam@please.ty> ha scritto nel messaggio
> news:5f8162be-a6f4-1837-6e82-dce91e0eaf96@please.ty...
>> News@tin.it.no ha scritto:
>>>>>
>>>>
>>>> Quindi ora funziona? Buono!
>>>
>>> non mi pare che funzioni.
>>> where non c'è.
>>>
>>>
>>> C:\WINDOWS\system32>py -0
>>> Requested Python version (0) not installed
>>> C:\WINDOWS\system32>
>>>
>>>
>>>
>>
>> Ho fatto delle ricerche ed a quanto ho capito in
>> Windows XP il comando "where" lo dovresti avere.
>> Probabilmente, oltre avere Windows XP, che Microsoft
>> ormai non manutiene più, non hai nemmeno la sua
>> versione più aggionata.
>> In ogni caso se volessi proprio utilizzare il comando
>> "where", te ne propongo una versione meno efficiente
>> ma che a me funziona. Non è che un'idea circa il metodo
>> con cui potresti costruirti il comando con un file
>> batch (.bat o .cmd) e comunque ti da l'idea di come
>> funziona il comando:
>>
>> @for %%e in (%PATHEXT%) do @for %%i in (%1%%e) do @if NOT "%%~$PATH:i"==""
>> echo %%~$PATH:i
>>
>
> si apre e si chiude file.bat. ma non si fa a tempo a vedere nulla anche se
> aggiungo il comando pause
>
>
Questo succede perché non hai il comando 'where' il quale, come puoi
notare dalla linea di script, dipende da 2 variabili di ambiente (vale
anche per il comando 'where' originale): PATH e PATHEXT. La prima
contiene l'elenco dei percorsi in cui il sistema cerca i comandi da
lanciare quando si utilizza il prompt, mentre la seconda contiene
l'elenco di estensioni che il programma lanciato al prompt potrebbe
avere.
Di queste 2 variabili, probabilmente ne avrai una sola configurata e ti
dovrebbe mancare PATHEXT. Inoltre questi comandi andrebbero eseguiti al
prompt e non lanciati da Explorer, sopratutto perché sono comandi che
richiedono l'aagiunta di paramentri quando vengono avviati e questi non
glie li puoi aggiungere avviandoli da Explorer (per prompt intendo
avviare CMD.EXE su windows o cliccando sull'icona "prompt dei comandi").
Purtroppo il fatto che tu intendessi utilizzare il python mi ha portato
a pensare che tu avessi una discreta dimestichezza con l'utilizzo del
sistema al prompt, cosa che comunque dovrai acquisire se intendi
utilizzare il python (in realtà non ho ancora capito se intendi
utilizzarlo per sviluppare programmi o solo per utilizzarne alcuni).
Fatta questa premessa, se intendi scriverti il comado 'where' dovrai
scrivere un file batch un poco più complesso rispetto alla linea che ti
ho inviato che doveva essere un seplice esempio ed i passi dovrebbero
essere:
- verificare che sia dato un nome programma come parametro
- verificare che la variabile PATH esista e contenga qualcosa
- verificare che la variabile PATHEXE esista e contenga qualcosa
- se non esiste crearne una con un elenco di estensioni minimale
- se il comando dato come parametro è comprensivo di estensione ignorare
la variabile PATHEXE
- fare la ricerca
Di seguito ti invio un esempio di come potrebbe essere uno script che
segua i punti che ho elencato:
:::: Inizio batch
@echo off
setlocal ENABLEDELAYEDEXPANSION
if "%1" == "" goto :uso_where
if not "%2" == "" goto :uso_where
if "%PATH%" == "" (
echo.
echo Variabile PATH non settata.
goto :eof
)
call :split_name %1 PNAME PEXT
if not "%PEXT%" == "" set "PATHEXT=%PEXT%"
if "%PATHEXT%" == "" (
set "PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.JS"
)
set /A IF_PRINT=0
for %%e in (%PATHEXT%) do (
for %%i in (%PNAME%%%e) do (
if NOT "%%~$PATH:i" == "" (
if !IF_PRINT! equ 0 (
set /A IF_PRINT=1
echo.
)
echo %%~$PATH:i
)
)
)
endlocal
goto :eof
:uso_where
echo.
echo Uso: where ^<nome programma^>
goto :eof
:split_name
setlocal
endlocal && set "%2=%~n1" && set "%3=%~x1"
goto :eof
:::: Fine batch
Che utilizzato al prompt produce questi risultati:
[D:\jak]
$> where.bat
Uso: where <nome programma>
[D:\jak]
$> where.bat python
c:\Python3\python.exe
[D:\jak]
$> where.bat python.exe
c:\Python3\python.exe
[D:\jak]
$>
...anche se la variabile PATHEXT non esiste mantre emette una
segnalazione se la avriabile PATH non esiste.
Back to it.comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar
Pip on WinXp "News@tin.it.no" <news@tin.it.no> - 2023-04-01 10:05 +0200
Re: Pip on WinXp jak <nospam@please.ty> - 2023-04-11 23:58 +0200
Re: Pip on WinXp "News@tin.it.no" <news@tin.it.no> - 2023-07-06 08:50 +0200
Re: Pip on WinXp jak <nospam@please.ty> - 2023-07-09 18:22 +0200
Re: Pip on WinXp "News@tin.it.no" <news@tin.it.no> - 2023-07-12 15:21 +0200
Re: Pip on WinXp jak <nospam@please.ty> - 2023-07-12 18:56 +0200
Re: Pip on WinXp jak <nospam@please.ty> - 2023-07-12 19:02 +0200
Re: Pip on WinXp jak <nospam@please.ty> - 2023-07-12 19:00 +0200
Re: Pip on WinXp "News@tin.it.no" <news@tin.it.no> - 2023-08-08 09:13 +0200
Re: Pip on WinXp jak <nospam@please.ty> - 2023-08-08 22:50 +0200
Re: Pip on WinXp "News@tin.it.no" <news@tin.it.no> - 2023-08-10 08:37 +0200
Re: Pip on WinXp jak <nospam@please.ty> - 2023-08-10 10:30 +0200
csiph-web