使用ArcGIS安装的Python 2.7安装pip

时间:2014-10-27 05:51:31

标签: python scrapy pip arcgis

我正在尝试在Windows 8.1上安装Scrapy for Python 2.7,我知道我首先需要安装pip。由于我通过ArcGIS 10.2安装了Python,我认为我需要在C:\ Python27 \ ArcGIS10.2 \ lib \ site-packages下安装pip。一旦pip安装在该目录中,我收到错误代码:

>>> 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

我还在C:\ Python27 \ lib \ site-packages中安装了pip。但是,当它仅安装在该目录中时,PyScripter无法识别它已安装。有没有人有任何建议?

3 个答案:

答案 0 :(得分:4)

我有类似的设置(通过ArcGIS 10.2安装Python,但在运行Windows 7而不是8.1的计算机上)。我使用PIP安装另一个包(小鸟而不是scrapy)并使其正常工作。我认为你的问题可能是试图从Python解释器而不是命令行工作(哦,你们强大的Unix用户使用你们强大的命令行)。这对我有用:

  1. 转到http://pip.readthedocs.org/en/latest/installing.html
  2. 下载get-pip.py文件并将其放在python文件夹中,例如:C:\ python27 \ arcgis10.2 \
  3. 启动命令提示符(开始菜单&gt;&gt;附件&gt;&gt;命令提示符)
  4. 输入以下命令将目录更改为python文件夹:cd c:\ python27 \ arcgis10.2
  5. 输入以下命令安装PIP:python get-pip.py
  6. 输入以下命令将目录更改为scripts文件夹:cd scripts
  7. 输入:pip install scrapy
  8. ,使用pip安装您的包裹(例如scrapy)

    如果这样可行,您应该可以立即进入Python并导入scrapy。这在我实验室的每台计算机上都适用于我...只是不在我自己的笔记本电脑上......很快就会写出我自己的问题(唉!)。

答案 1 :(得分:3)

我有同样的问题,我通过做一个非常干净的重新安装python来解决它。

我的ArcGIS版本再次从10.2.2上升到10.3再到10.2到10.2.2。当通过“添加/删除程序”删除ArcGIS(或仅Python功能)时,将删除C:\ Python27中的大多数文件。但是,这不会从系统文件夹中删除python dll。根据您的Window OS,它将是:

  • C:\ Windows \ System32 \ python27.dll
  • C:\的Windows \ Syswow64资料\ python27.dll

手动删除DLL,然后再次执行python安装。

这应该给你一个非常干净的python安装,然后再次运行你的get-pip.py,pip应该按预期工作!

P.S。如果你降级你的python,删除dll非常重要。因为python27.dll似乎在python升级时被替换,但在降级时则不然。因此,python27.dll与C:\ Python27中的脚本不兼容。

答案 2 :(得分:1)

修改文件HTMLParser.py,如下所示(C:\Python27\ArcGIS10.2\lib\HTMLParser.py对我来说):

之前:

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)

之后:

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)

然后使用pip。我不知道这个修改会受到什么影响。使用pip

后添加interrogativ点可能更安全