2015-03-06 12 views
15

stavo facendo una nuova installazione per Python 2.7.9 e 3.4.3 su Win7 X64 oggi, e ho scoperto che non v'è alcuna cartella Script in Python27 e Python34 cartella come cartella di livello primo figlio, ma ce n'è uno in Tools. Tuttavia, non sono riuscito a trovare pip all'interno di quella cartella Script, anche sedeve essere installato con Python per impostazione predefinita. L'altro stavo facendo la stessa installazione per il mio altro PC e laptop, c'era la cartella Script (come cartella figlio di primo livello in Python27 e Python34) contenente pip. Quindi che sta succedendo? come installare pip e forse altri utili script in questo modo?Python 3.4 e 2.7 installazione alcuna cartella Script e nessun pip installato

[EDIT] Ho provato python -m ensurepip in Python34. Ho ottenuto le seguenti errori:

Ignoring indexes: https://pypi.python.org/simple 
Collecting setuptools 
Exception: 
Traceback (most recent call last): 
File "C:\Users\daiyue\AppData\Local\Temp\tmppvmc8dv1\pip-6.0.8-py2.py3-none- 
any.whl\pip\basecommand.py", line 232, in main 
    status = self.run(options, args) 
File "C:\Users\daiyue\AppData\Local\Temp\tmppvmc8dv1\pip-6.0.8-py2.py3-none- 
any.whl\pip\commands\install.py", line 339, in run 
    requirement_set.prepare_files(finder) 
File "C:\Users\daiyue\AppData\Local\Temp\tmppvmc8dv1\pip-6.0.8-py2.py3-none- 
any.whl\pip\req\req_set.py", line 333, in prepare_files 
    upgrade=self.upgrade, 
File "C:\Users\daiyue\AppData\Local\Temp\tmppvmc8dv1\pip-6.0.8-py2.py3-none- 
any.whl\pip\index.py", line 326, in find_requirement 
    file_locations, url_locations = self._sort_locations(locations) 
File "C:\Users\daiyue\AppData\Local\Temp\tmppvmc8dv1\pip-6.0.8-py2.py3-none- 
any.whl\pip\index.py", line 158, in _sort_locations 
    sort_path(os.path.join(path, item)) 
File "C:\Users\daiyue\AppData\Local\Temp\tmppvmc8dv1\pip-6.0.8-py2.py3-none- 
any.whl\pip\index.py", line 139, in sort_path 
    if mimetypes.guess_type(url, strict=False)[0] == 'text/html': 
File "C:\Python34\lib\mimetypes.py", line 287, in guess_type 
    init() 
File "C:\Python34\lib\mimetypes.py", line 348, in init 
    db.read_windows_registry() 
File "C:\Python34\lib\mimetypes.py", line 255, in read_windows_registry 
    with _winreg.OpenKey(hkcr, subkeyname) as subkey: 
TypeError: OpenKey() argument 2 must be str without null characters or None, not str 

[modifica] Il problema è dovuto a molteplici chiavi di registro nullo in HKEY_LOCAL_MACHINE che fanno read_windows_registry() in mimetypes.py ricerche fallito. Ecco il post che conduce alla soluzione:

Python ‘pip’ and Windows registry corruption

grazie

+0

Perché pensi che pip debba essere installato con Python di default? Non è. – yole

+0

Quale sistema operativo stai utilizzando? – alfasin

+0

Si utilizza il pip in bundle come 'python -m pip installa SomePackage'. Vedere https://docs.python.org/3/installing/ per ulteriori informazioni su come utilizzare i rispettivi pip per python3 e python2 se sono installate entrambe le versioni. – halex

risposta

7

Se è stato utilizzato il PSF (python.org) MSI installatori di Windows, pip (e dipendenze) devono essere installati in pythonxy/Lib/site-packages per 3.4.0+ e 2.7.9+. Ci dovrebbero anche essere pythonxy/script contenenti circa 5 .exes. Questa è l'ultima parte del processo di installazione. Una finestra del prompt dei comandi dovrebbe apparire brevemente. Forse non hai [] installato pip controllato durante le installazioni (anche se questo dovrebbe essere stato controllato per impostazione predefinita). Forse c'è stato un errore che ti sei perso.

In ogni caso, dovresti avere pythonxy/Lib/ensurepip/* presente sia per 2.7 che per 3.4 e dovresti essere in grado di eseguire questo modulo ora. In Prompt dei comandi, prova python -m ensurepip in entrambi .../python27 e .../python34.

+2

Ciao, ho provato 'python -m ensurepip', ma ho trovato alcuni errori elencati nell'OP. 'C: \ Pythonxy \ Lib \ site-packages' non contiene nient'altro che un file' README'. A proposito, qual è 'PSF'? Ho scaricato gli installer di 'Windows' per' 2.7' e '3.4'. – daiyue

+1

Python Software Foundation, che gestisce i siti xyz.python.org. Ho visto il tuo post su python-list. Il messaggio di errore suggerisce che arg 2 è una stringa * con * un null, che sembra un bug da qualche parte. Se nessuna risposta qua o là, forse vale la pena di segnalare un bug su bugs.python.org. –

1

Mi sono imbattuto nello stesso problema oggi mentre provavo a installare Python 2.7.13 nel mio computer; dopo alcune indagini mi sono reso conto che era già presente la v.3.60 ("Anaconda") (è arrivato insieme a Microsoft Visual Studio 2017, che ho installato un paio di settimane fa).

sospettavo di qualche disallineamento percorso nel Registro di sistema, così ho provato a rimuovere entrambi Python v. 3.60 e 2.17, e ripulire il Registro di sistema cancellando la chiave HKCU \ Software \ Python (che, a causa di qualche ragione, era ancora presente). Dopo questo, sono stato in grado di installare correttamente la versione 2.7.13, e questa volta la cartella \ scripts è presente, con tutti i contenuti previsti.

Non so se l'installazione di v. 3.6 di nuovo causerebbe alcun problema: non ho intenzione di provare questo per il tempo poiché sto attualmente sviluppando per v.2.7.

Spero che questo possa essere di aiuto, comunque.

Max - Italia


EDIT: Ho fatto alcuni ulteriori indagini e pensare che ho scoperto il motivo per cui (nel mio caso), la cartella \ Scripts mancava: il percorso in cui ho stava per installare Python è in unità virtuale.

Nel mio computer ho solo una partizione (C :), e ho mappato una cartella (C: \ Development) come D :, quindi ho provato a installare Python su D: \ Python27; a quanto pare questo non è "buono" e causa alcuni problemi nell'installer.

Dopo averlo scoperto, ho provato a installare sul percorso reale, e ora tutto sembra essere OK.

max.

3

Questo problema è un bug ufficiale: Issue23604.

Ho riscontrato lo stesso problema e l'ho risolto correttamente utilizzando il metodo in Swarley's Blog.

0

Sulla base di una combinazione di che cosa è qui, e quello che ho trovato altrove, ecco come ho riparato:

Disinstalla tutto ciò che è già installato. Vai a regedit e HKLM/SOFTWARE/Python ed elimina l'intera sezione python. Reinstallare Python

Questo installato con la cartella degli script questa volta.

Spero che questo aiuti qualcuno.

1

Indovina cosa? Nel caso in cui sia installato NetBeans (o probabilmente GlassFish), potrebbe interrompere l'installazione per pip!

Dettagli: c'è il programma di installazione di NetBeans che può talvolta interrompere il registro di Windows in un modo che non è previsto da altri programmi di installazione.

@J3soon's answer era vicino, ma Swarley's blog post non hanno risolto il problema nel mio ambiente, perché non era un carattere null, ma era un altro tipo di corruzione del Registro.

Ed ecco come mi sono liberato del problema. Esegui il seguente script di PowerShell:

$local_key = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*' 
$machine_key = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*' 
$machine_key6432 = 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*' 
$items = Get-ChildItem @($local_key, $machine_key, $machine_key6432) 
$ErrorActionPreference = 'Stop' 

foreach ($item in $items) { 
    Write-Output $item.PSPath 
    $null = Get-ItemProperty $item.PSPath 
} 

Scriverà i nomi delle chiavi di registro nell'output. Nel caso in cui venga stampato un errore, prendi l'ultima chiave stampata e rimuovi quella dal registro (usando PowerShell o regedit o qualsiasi altro strumento tu preferisca).

Successivamente, reinstallare Python e installare pip come previsto.

0

Sto usando python 3.6.2 e ho affrontato un problema simile di cartella script mancanti (anche script pip) nella cartella python. Ho fatto quanto segue per aggiungere nuovamente la cartella degli script a python.

  1. Goto - Pannello di controllo \ Tutti gli articoli di controllo \ Programmi e funzionalità quindi cercare programma Python e cercare di disinstallarlo. Apparirà una finestra pop che mostra l'immagine seguente.

Image Python

tentare di riparare il programma installato che dovrebbe risolvere il problema.

  1. Altrimenti fare clic su MODIFICA e spuntare la casella di controllo pip e Aggiungi Python alle variabili di ambiente, quindi installarlo. Questo dovrebbe risolvere il problema.
0

Anche io stavo affrontando questo problema. Ho risolto il problema procedendo nel seguente modo:

  1. Disinstallare python. (è possibile utilizzare il programma di installazione (python-2.7.xx.msi) per eseguire la disinstallazione. Selezionare l'opzione "Rimuovi Python" facendo doppio clic sul programma di installazione.)

  2. Modificare la variabile di ambiente 'Percorso' e rimuovere il percorso di directory python. (Per modificare la variabile di ambiente, fare clic con il tasto destro su "Questo PC", fare clic su Proprietà, fare clic su "Proprietà di sistema avanzate" -> Variabili d'ambiente)

  3. Rimuovere la variabile di ambiente 'Percorso Python' se presente.

  4. Ora reinstallare python.

Funzionerà !!!

0

In realtà la cartella Scipts non verrà creata dopo aver installato python, è necessario creare manualmente questa cartella e quindi installare pip, quindi è possibile trovare i file richiesti in questa directory.

Problemi correlati