2015-05-29 15 views
9

khi tôi làm pip3 list tại nhà ga, nó đi kèm các lỗi sau:danh sách PIP3 đến AssertionError

[email protected]:~$ pip3 list 
Exception: 
Traceback (most recent call last): 
    File "/usr/lib/python3/dist-packages/pip/basecommand.py", line 122, in main 
    status = self.run(options, args) 
    File "/usr/lib/python3/dist-packages/pip/commands/list.py", line 80, in run 
    self.run_listing(options) 
    File "/usr/lib/python3/dist-packages/pip/commands/list.py", line 142, in run_listing 
    self.output_package_listing(installed_packages) 
    File "/usr/lib/python3/dist-packages/pip/commands/list.py", line 151, in output_package_listing 
    if dist_is_editable(dist): 
    File "/usr/lib/python3/dist-packages/pip/util.py", line 367, in dist_is_editable 
    req = FrozenRequirement.from_dist(dist, []) 
    File "/usr/lib/python3/dist-packages/pip/__init__.py", line 299, in from_dist 
    assert len(specs) == 1 and specs[0][0] == '==' 
AssertionError 

Storing debug log for failure in /home/cliu/.pip/pip.log 

Bất cứ ai cũng biết làm thế nào để sửa lỗi này?

+0

Tốt. Bạn có thể quan tâm để xem https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1445947 –

+0

xin lỗi, tôi không biết cách sửa đổi mã này – fluency03

+0

ở đâu? pip/__ init __. py'? – fluency03

Trả lời

4

Đánh giá bởi lỗi được liên kết trong nhận xét, điều này có thể được khắc phục bằng cách nâng cấp lên Pip mới nhất. Vì thực hiện điều đó trong hệ thống đóng gói của Ubuntu/Debian là không đáng kể, tôi nghĩ có lẽ sẽ đơn giản hơn khi cài đặt phiên bản Pip mới thành Virtualenv. Khi bạn đã tạo virtualenv, bạn có thể nâng cấp lên Pip mới nhất bằng lệnh này:

pip install --upgrade pip 
+1

'pip3 install --upgrade pip3' không hoạt động đối với tôi – fluency03

+0

Nhiều điều cần lưu ý: 1. "Không hoạt động" không có nghĩa gì cả. Bạn nhận được thông báo lỗi nào? 2. Nếu bạn đang ở trong một virtualenv (bạn đang có, phải không?), Nó chỉ được gọi là "pip", không cần cho 3. 3. Ngay cả khi bạn không ở trong một virtualenv, pip gọi chính nó "pip", vì vậy nó sẽ là 'pip3 install --upgrade pip'. Nhưng bên ngoài một virtualenv, điều đó sẽ không hoạt động mà không có sudo và có thể sẽ gây nhầm lẫn cho APT, vì vậy tôi không khuyên bạn nên sử dụng nó. – Kevin

0

Lạ lùng, tôi đã gặp phải vấn đề tương tự, nhưng giải pháp đầu tiên không hiệu quả với tôi (tôi nhận được cùng một lỗi sau khi tẩy nó lần nữa và hơn nữa). Vì vậy, tôi đã quyết định chỉnh sửa dòng.

assert len(specs) == 1 and specs[0][0] == '==' 

Và loại bỏ:

== '==' 

Funny, nhưng nó hoạt động ngay bây giờ.

+0

Tại sao bỏ phiếu xuống? Nó làm việc hoàn hảo cho tôi trở lại sau đó. Điều đó không công bằng. Vì câu trả lời của tôi là câu trả lời đầu tiên. Nhìn vào ngày trả lời. –

0

Tôi cố định vấn đề này bằng cách bình luận ra vấn đề assert tuyên bố:

# assert len(specs) == 1 and specs[0][0] == '==' 

này chắc chắn không phải là một giải pháp lý tưởng, như tuyên bố rằng có lẽ là có một lý do chính đáng, nhưng pip3 list hiện đang làm việc, cũng như tất cả các phần khác của pip3 mà tôi sử dụng.

2

Mặc dù có một câu trả lời được chấp nhận ở đây, điều đó không hiệu quả đối với tôi. Vì vậy, câu trả lời của tôi có thể giúp những người khác đối mặt với cùng một vấn đề. Lỗi này đã được sửa bằng một dòng cam kết ở đây.

https://github.com/pypa/pip/commit/6cab71f422f2425b4d2283023c9e955f9663dde6

Giải pháp là thay đổi dòng từ

assert len(specs) == 1 and specs[0][0] == '==' 

để

assert len(specs) == 1 and specs[0][0] in ["==", "==="] 

Số dòng thay đổi từ phiên bản lên phiên bản nhưng, thông điệp debug nên làm cho nó dễ dàng hơn để tìm thấy. Trong trường hợp của bạn là line 299, trong tệp "/usr/lib/python3/dist-packages/pip/__init__.py"

+0

Rất cám ơn. Chỉ cần lưu ngày của tôi. – slayedbylucifer

+0

Đây là bro tốt –

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