2014-10-27 9 views
5

Sto cercando di installare Scrapy per Python 2.7 su Windows 8.1 e capisco che prima ho bisogno di pip per essere installato. Dato che ho installato Python tramite ArcGIS 10.2, penso di aver bisogno di installare pip in C: \ Python27 \ ArcGIS10.2 \ lib \ site-packages. Una volta pip è installato in quella directory ricevo il codice di errore:Installazione pip usando Python 2.7 installato su ArcGIS

>>> import pip 
Traceback (most recent call last): 
    File "<interactive input>", line 1, in <module> 
    File "C:\Python27\ArcGIS10.2\lib\site-packages\pip\__init__.py", line 10, in <module> 
    from pip.util import get_installed_distributions, get_prog 
    File "C:\Python27\ArcGIS10.2\lib\site-packages\pip\util.py", line 18, in <module> 
    from pip._vendor.distlib import version 
    File "C:\Python27\ArcGIS10.2\lib\site-packages\pip\_vendor\distlib\version.py", line 14, in <module> 
    from .compat import string_types 
    File "C:\Python27\ArcGIS10.2\lib\site-packages\pip\_vendor\distlib\compat.py", line 38, in <module> 
    from HTMLParser import HTMLParser 
    File "C:\Python27\ArcGIS10.2\lib\HTMLParser.py", line 47, in <module> 
    """, re.VERBOSE) 
    File "C:\Python27\ArcGIS10.2\lib\re.py", line 190, in compile 
    return _compile(pattern, flags) 
    File "C:\Python27\ArcGIS10.2\lib\re.py", line 242, in _compile 
    raise error, v # invalid expression 
error: nothing to repeat 

ho anche installato pip in C: \ Python27 \ lib \ site-packages. Tuttavia, quando viene installato solo in quella directory, PyScripter non riconosce che è installato. Qualcuno ha qualche suggerimento?

risposta

3

Ho avuto lo stesso problema e l'ho risolto effettuando una REPUBBLICA installazione di Python.

La mia versione di ArcGIS è passata di nuovo da 10.2.2 a 10.3 a 10.2 a 10.2.2. Quando ArcGIS (o solo le funzionalità di Python) viene rimosso tramite Installazione applicazioni, la maggior parte dei file da C: \ Python27 verrà rimossa. Tuttavia, questo non rimuoverà la DLL di python dalla cartella di sistema. A seconda del sistema operativo Window, sarà uno:

  • C: \ Windows \ System32 \ python27.dll
  • C: \ Windows \ SysWOW64 \ python27.dll

Rimuovere la DLL manualmente, quindi eseguire nuovamente l'installazione di python.

Questo dovrebbe fornire un'installazione veramente pulita di python, quindi eseguire di nuovo get-pip.py e pip dovrebbe funzionare come previsto!

P.S. La rimozione della DLL è davvero importante se si sta eseguendo il downgrade del proprio python. Come python27.dll sembra essere sostituito se python viene aggiornato, ma non quando viene declassato. Quindi, c'è incompatibilità tra python27.dll con gli script in C: \ Python27.

+0

Questo era perfetto per me - ho risparmiato ore a sbattere la testa contro il muro. Su una macchina che è passata di nuovo da 10.2.2 a 10.3 e successiva a 10.2.2. Cancellare la DLL in SysWOW64 e riparare l'installazione di ArcGIS ha risolto tutto. Grazie! – Nick

1

Modificare il file HTMLParser.py come segue (C:\Python27\ArcGIS10.2\lib\HTMLParser.py per me):

Prima:

locatestarttagend = re.compile(r""" 
    <[a-zA-Z][-.a-zA-Z0-9:_]*   # tag name 
    (?:[\s/]*       # optional whitespace before attribute name 
    (?:(?<=['"\s/])[^\s/>][^\s/=>]* # attribute name 
     (?:\s*=+\s*     # value indicator 
     (?:'[^']*'     # LITA-enclosed value 
      |"[^"]*"     # LIT-enclosed value 
      |(?!['"])[^>\s]*   # bare value 
     ) 
     )?(?:\s|/(?!>))* 
    )* 
    )? 
    \s*        # trailing whitespace 
""", re.VERBOSE) 

Dopo:

locatestarttagend = re.compile(r""" 
    <[a-zA-Z][-.a-zA-Z0-9:_]*   # tag name 
    (?:[\s/]*       # optional whitespace before attribute name 
    (?:(?<=['"\s/])[^\s/>][^\s/=>]* # attribute name 
     (?:\s*=+\s*     # value indicator 
     (?:'[^']*'     # LITA-enclosed value 
      |"[^"]*"     # LIT-enclosed value 
      |(?!['"])[^>\s]*   # bare value 
     ) 
     )?(?:\s|/(?!>))* 
    )* 
    ) # >>>>>>>>>>>>>>>>>>>>>>>>>>> Remove the ? <<<<<<<<<<<<<<<<<< 
    \s*        # trailing whitespace 
""", re.VERBOSE) 

Quindi utilizzare pip. Non so cosa potrebbe essere influenzato da questa modifica. Potrebbe essere più sicuro aggiungere il punto interrogativo dopo aver usato pip

+0

Questo ha funzionato per me, grazie @yageek. Sembra che questa modifica sia necessaria anche per il comando 'pip install '. Ho finito per sostituire il '?' dopo aver installato il pacchetto perché non sono sicuro delle implicazioni della modifica sullo script HTMLParser. – amarinel

+0

yageek, dopo che ho fatto quello che mi hai suggerito, ed eseguo "get pip" per installarlo, ho ottenuto questo risultato. Stai usando pip versione 6.0.8, tuttavia la versione 9.0.1 è disponibile. Si dovrebbe considerare l'aggiornamento tramite il comando 'pip install --upgrade pip'. Requisito già aggiornato: pip in c: \ python27 \ arcgis10.3 \ lib \ site-packages. cosa posso fare ora? – newGIS

2

Ho una configurazione simile (Python installato tramite ArcGIS 10.2, ma su macchine con Windows 7 non 8.1). Ho usato PIP per installare un altro pacchetto (birdy invece di scrapy) e ho funzionato. Penso che il tuo problema potrebbe essere quello di provare a lavorare da un interprete Python invece che dalla riga di comando (oh, voi potenti utenti Unix con la vostra sempre potente linea di comando). Ecco cosa ha funzionato per me:

  1. Vai http://pip.readthedocs.org/en/latest/installing.html
  2. Scarica il file get-pip.py e inserirlo nella cartella di pitone, ad esempio: C: \ python27 \ arcgis10.2 \
  3. Avviare un prompt dei comandi (Start Menu >> Accessori >> Prompt dei comandi)
  4. Passare alla cartella pitone immettendo: cd c: \ python27 \ arcgis10.2
  5. Installare PIP immettendo: python get-pip.py
  6. Cambia directory nella cartella degli script con enterin g: cd scripts
  7. Utilizzare pip per installare il pacchetto (ad es. scrapy) inserendo: pip install scrapy

Se questo funziona, dovresti essere in grado di andare in Python ora e importare scrapy. Questo ha funzionato per me su tutti i computer del mio laboratorio ... solo sul mio portatile ... scriverò la mia domanda per quello presto (arghh!).

+0

Grazie per la risposta. Ho intenzione di provarlo con il suggerimento di yageek e vedere cosa funziona. Apprezzo molto l'aiuto. – user3566911

Problemi correlati