Instalación de pip utilizando Python 2.7 instalado por ArcGIS

Estoy tratando de instalar Scrapy for Python 2.7 en Windows 8.1 y entiendo que primero necesito que instale pip. Desde que tengo Python instalado a través de ArcGIS 10.2, creo que necesito instalar pip en C: \ Python27 \ ArcGIS10.2 \ lib \ site-packages. Una vez que pip está instalado en ese directorio, recibo el código de error:

>>> import pip Traceback (most recent call last): File "", line 1, in  File "C:\Python27\ArcGIS10.2\lib\site-packages\pip\__init__.py", line 10, in  from pip.util import get_installed_distributions, get_prog File "C:\Python27\ArcGIS10.2\lib\site-packages\pip\util.py", line 18, in  from pip._vendor.distlib import version File "C:\Python27\ArcGIS10.2\lib\site-packages\pip\_vendor\distlib\version.py", line 14, in  from .compat import string_types File "C:\Python27\ArcGIS10.2\lib\site-packages\pip\_vendor\distlib\compat.py", line 38, in  from HTMLParser import HTMLParser File "C:\Python27\ArcGIS10.2\lib\HTMLParser.py", line 47, in  """, 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 

También instalé pip en C: \ Python27 \ lib \ site-packages. Sin embargo, cuando solo se instala en ese directorio, PyScripter no reconoce que está instalado. ¿Alguien tiene alguna sugerencia?

Tuve el mismo problema, y ​​lo resolví haciendo una reinstalación realmente limpia de python.

Mi versión de ArcGIS ha subido y bajado de 10.2.2 a 10.3 a 10.2 a 10.2.2 de nuevo. Cuando ArcGIS (o solo las funciones de Python) se elimina a través de Agregar o quitar progtwigs, la mayoría de los archivos de C: \ Python27 se eliminarán. Sin embargo, esto no eliminará la dll de python de la carpeta de su sistema. Dependiendo de su sistema operativo Windows, será:

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

Elimine la DLL manualmente y luego vuelva a realizar la instalación de python.

Esto debería darle a Python una instalación realmente limpia, luego ejecute su get-pip.py de nuevo, y pip debería funcionar como se esperaba.

PS La eliminación de la dll es realmente importante si está degradando su Python. Como python27.dll parece ser reemplazado si se actualiza python, pero no cuando se baja. Por lo tanto, hay incompatibilidad entre python27.dll con los scripts en C: \ Python27.

Tengo una configuración similar (Python instalado a través de ArcGIS 10.2, pero en máquinas que ejecutan Windows 7 no 8.1). Usé PIP para instalar otro paquete (birdy en lugar de scrapy) y lo hice funcionar. Creo que su problema puede estar intentando trabajar desde dentro de un intérprete de Python en lugar de hacerlo desde la línea de comandos (oh, ustedes, poderosos usuarios de Unix con su línea de comandos siempre poderosa). Esto es lo que funcionó para mí:

  1. Vaya a http://pip.readthedocs.org/en/latest/installing.html
  2. Descargue el archivo get-pip.py y colóquelo en su carpeta de python, por ejemplo: C: \ python27 \ arcgis10.2 \
  3. Iniciar un símbolo del sistema (Menú Inicio >> Accesorios >> Símbolo del sistema)
  4. Cambie los directorios a la carpeta python ingresando: cd c: \ python27 \ arcgis10.2
  5. Instala PIP ingresando: python get-pip.py
  6. Cambie los directorios a la carpeta de scripts ingresando: cd scripts
  7. Use pip para instalar su paquete (por ejemplo, desechable) ingresando: pip install scrapy

Si esto funciona, deberías poder entrar a Python ahora e importar scrapy. Esto me funcionó en todas las computadoras de mi laboratorio … pero no en mi propia computadora portátil … escribiré mi propia pregunta para eso pronto (¡arghh!).

Modifique el archivo HTMLParser.py como se HTMLParser.py continuación ( C:\Python27\ArcGIS10.2\lib\HTMLParser.py para mí):

Antes de :

 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) 

Después :

 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) 

Entonces usa pip . No sé qué se vería afectado por esta modificación. Puede ser más seguro agregar el punto de interrogación después de usar pip