2014-10-27 25 views
5

Tôi đang cố gắng cài đặt Scrapy cho Python 2.7 trên Windows 8.1 và tôi hiểu rằng trước tiên tôi cần pip được cài đặt. Vì tôi đã cài đặt Python thông qua ArcGIS 10.2, tôi nghĩ rằng tôi cần cài đặt pip theo C: \ Python27 \ ArcGIS10.2 \ lib \ site-packages. Khi pip được cài đặt trong thư mục đó, tôi nhận được mã lỗi:Cài đặt pip bằng cách sử dụng Python cài đặt ArcGIS 2.7

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

Tôi cũng đã cài đặt pip trong C: \ Python27 \ lib \ site-packages. Tuy nhiên, khi nó chỉ được cài đặt trong thư mục đó PyScripter không nhận ra rằng nó được cài đặt. Có ai có bất cứ đề nghị?

Trả lời

3

Tôi đã gặp sự cố tương tự và tôi đã giải quyết vấn đề bằng cách thực hiện cài đặt lại python thực sự SẠCH.

Phiên bản ArcGIS của tôi đã tăng và giảm từ 10,2,2 đến 10,3 đến 10,2 đến 10,2,2 lần nữa. Khi ArcGIS (hoặc chỉ các tính năng Python) được loại bỏ thông qua Add/Remove Programs, hầu hết các tệp từ C: \ Python27 sẽ bị loại bỏ. Tuy nhiên, điều này sẽ không loại bỏ các dll python từ thư mục hệ thống của bạn. Tùy thuộc vào hệ điều hành Window của bạn, nó sẽ là một trong hai:

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

Xóa DLL theo cách thủ công, sau đó cài đặt lại trăn.

Điều này sẽ cung cấp cho bạn cài đặt python thực sự sạch sẽ, sau đó chạy lại get-pip.py và pip sẽ hoạt động như mong đợi!

P.S. Việc loại bỏ các dll là thực sự quan trọng nếu bạn đang hạ cấp python của bạn. Khi python27.dll dường như được thay thế nếu python được nâng cấp, nhưng không phải khi nó bị hạ cấp. Do đó, có sự không tương thích giữa python27.dll với các tập lệnh trong C: \ Python27.

+0

Điều này đã chết đối với tôi - những giờ đã lưu đập đầu tôi vào tường. Trên máy từ 10.2.2-> 10.3 và quay lại 10.2.2 lần nữa. Dọn sạch DLL trong SysWOW64 và sửa chữa cài đặt ArcGIS đã sửa mọi thứ. Cảm ơn! – Nick

1

Sửa đổi các tập tin HTMLParser.py như sau (C:\Python27\ArcGIS10.2\lib\HTMLParser.py cho tôi):

Trước:

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) 

Sau:

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) 

Sau đó sử dụng pip. Tôi không biết điều gì sẽ bị ảnh hưởng bởi sự sửa đổi này. Có thể an toàn hơn khi thêm điểm interrogativ sau khi bạn sử dụng pip

+0

Điều này phù hợp với tôi, cảm ơn bạn @yageek. Dường như việc sửa đổi này cũng cần thiết cho lệnh 'pip install '. Tôi đã thay thế '?' sau khi cài đặt gói vì tôi không chắc chắn về tác động của thay đổi đối với tập lệnh HTMLParser. – amarinel

+0

yageek, sau khi tôi đã làm những gì bạn đề nghị, và chạy "lấy pip" để cài đặt nó, tôi nhận được kết quả này Bạn đang sử dụng pip phiên bản 6.0.8, tuy nhiên phiên bản 9.0.1 có sẵn. Bạn nên xem xét nâng cấp thông qua lệnh 'pip install --upgrade pip'. Yêu cầu đã được cập nhật: pip trong c: \ python27 \ arcgis10.3 \ lib \ site-packages. tôi có thể làm gì bây giờ? – newGIS

2

Tôi có một thiết lập tương tự (Python được cài đặt thông qua ArcGIS 10.2, nhưng trên các máy chạy Windows 7 không 8.1). Tôi đã sử dụng PIP để cài đặt một gói khác (birdy thay vì scrapy) và làm cho nó hoạt động. Tôi nghĩ rằng vấn đề của bạn có thể đang cố gắng làm việc từ bên trong một trình thông dịch Python thay vì từ dòng lệnh (oh, các người dùng Unix mạnh mẽ với dòng lệnh mạnh mẽ của bạn). Đây là những gì làm việc cho tôi:

  1. Đến http://pip.readthedocs.org/en/latest/installing.html
  2. Tải file get-pip.py và đặt nó trong thư mục python của bạn, ví dụ: C: \ python27 \ arcgis10.2 \
  3. Bắt đầu command prompt (Start menu >> Accessories >> command Prompt)
  4. Thay đổi thư mục vào thư mục python bằng cách nhập: cd c: \ python27 \ arcgis10.2
  5. Cài đặt PIP bằng cách nhập: python get-pip.py
  6. Thay đổi thư mục vào thư mục script bằng enterin g: tập lệnh cd
  7. Sử dụng pip để cài đặt gói của bạn (ví dụ: phế liệu) bằng cách nhập: pip install scrapy

Nếu điều này hoạt động, bạn sẽ có thể đi vào Python ngay bây giờ và nhập dữ liệu. Điều này làm việc cho tôi trên mọi máy tính trong phòng thí nghiệm của tôi ... chỉ cần không phải trên máy tính xách tay của riêng tôi ... sẽ được viết lên câu hỏi của riêng tôi cho rằng sớm (arghh!).

+0

Cảm ơn câu trả lời. Tôi sẽ thử cùng với gợi ý của yageek và xem những gì có hiệu quả. Tôi đánh giá cao sự giúp đỡ rất nhiều. – user3566911

Các vấn đề liên quan