首页 文章

使用ArcGIS安装的Python 2.7安装pip

提问于
浏览
6

我正在尝试在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 回答

  • 3

    我有同样的问题,我通过做一个真正的CLEAN重新安装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应该按预期工作!

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

  • 3

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

    • 转到http://pip.readthedocs.org/en/latest/installing.html

    • 下载get-pip.py文件并将其放在python文件夹中,例如:C:\ python27 \ arcgis10.2 \

    • 启动命令提示符(开始菜单>>附件>>命令提示符)

    • 输入以下命令将目录更改为python文件夹:cd c:\ python27 \ arcgis10.2

    • 输入以下命令安装PIP:python get-pip.py

    • 输入以下命令将目录更改为scripts文件夹:cd scripts

    • 输入:pip install scrapy,使用pip安装包(例如scrapy)

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

  • 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点可能更安全

相关问题