2016-09-07 13 views
8

Tôi gỡ một chương trình Python (3.5) với Pycharm (PyCharm Community Edition 2016.2.2 ; Build #PC-162.1812.1, built on August 16, 2016 ; JRE: 1.8.0_76-release-b216 x86 ; JVM: OpenJDK Server VM by JetBrains s.r.o) trên Windows 10.Debugger lần ra tại "Thu thập số liệu ..."

Vấn đề: khi dừng lại ở một số breakpoint, cửa sổ Debugger là bị kẹt tại "Thu thập dữ liệu", mà cuối cùng thời gian chờ. (với Không thể hiển thị biến khung)

Dữ liệu được hiển thị không phải là đặc biệt hoặc cũng không lớn. Nó là bằng cách nào đó có sẵn để Pycharm kể từ khi một breakpoint có điều kiện trên một số giá trị của dữ liệu cho biết hoạt động tốt (phá vỡ chương trình) - có vẻ như quá trình thu thập nó để hiển thị chỉ (như trái ngược với mục đích hoạt động) không thành công.

Khi tôi bước vào một chức năng xung quanh nơi tôi có điểm ngắt của tôi, dữ liệu của nó được hiển thị chính xác. Khi tôi đi lên ngăn xếp (với chức năng gọi điện thoại, một trong những tôi bước xuống và nơi tôi muốn ban đầu để có breakpoint) - Tôi bị mắc kẹt với thời gian chờ "Thu thập dữ liệu" một lần nữa.

Đã có nhiều vấn đề được nêu lên cùng một điểm kể từ ít nhất năm 2005. Một số đã được khắc phục, một số thì không. Các bản sửa lỗi thường được cập nhật lên phiên bản mới nhất (mà tôi có).

Có hướng chung nào tôi có thể truy cập để khắc phục hoặc khắc phục sự cố gia đình này không?


EDIT: một năm sau đó vấn đề vẫn còn đó và vẫn không có phản ứng từ các nhà phát triển/hỗ trợ sau khi lỗi đã được nâng lên.

+1

Tôi đang đồng bộ hóa cùng một vấn đề. Bạn đã tìm thấy một giải pháp hoặc ít nhất là một lời giải thích? – Josh

+4

Thật không may là không. Tôi đã mở một vé với các nhà phát triển nhưng không có phản ứng nào (giống với một vé khác cho một vấn đề khác). Mặc dù sản phẩm tuyệt vời nhưng hỗ trợ không tồn tại. – WoJ

+1

Tôi đang kết nối mạng LSTM trong Keras và tôi nhận được điều này vô nghĩa khi tôi cố gắng 'model.predict' từ bảng điều khiển trình gỡ lỗi. Nó đã không xảy ra khi tôi đã làm điều tương tự với các mạng feedforward. Mã thực sự chạy tốt khi không có trong trình gỡ rối/bàn điều khiển. Lạ lùng và khó chịu. – Josh

Trả lời

1

Tôi nghĩ rằng điều này là do một số lớp có phương thức mặc định __str __() quá dài dòng. Pycharm gọi phương thức này để hiển thị các biến cục bộ khi nó chạm vào điểm ngắt và nó bị kẹt trong khi tải chuỗi. Một mẹo mà tôi sử dụng để khắc phục điều này là chỉnh sửa thủ công lớp gây ra lỗi và thay thế phương thức __str __() cho một thứ gì đó ít tiết hơn.

Như một ví dụ, nó sẽ xảy ra cho lớp pytorch _TensorBase (và mọi tầng lớp tensor mở rộng nó), và có thể được giải quyết bằng cách chỉnh sửa mã nguồn pytorch đuốc/tensor.py, thay đổi __ __str() phương pháp như:

def __str__(self): 
     # All strings are unicode in Python 3, while we have to encode unicode 
     # strings in Python2. If we can't, let python decide the best 
     # characters to replace unicode characters with. 
     return str() + ' Use .numpy() to print' 
     #if sys.version_info > (3,): 
     # return _tensor_str._str(self) 
     #else: 
     # if hasattr(sys.stdout, 'encoding'): 
     #  return _tensor_str._str(self).encode(
     #   sys.stdout.encoding or 'UTF-8', 'replace') 
     # else: 
     #  return _tensor_str._str(self).encode('UTF-8', 'replace') 

Cách xa tối ưu nhưng có trong tay.

+0

Đây là thông tin tốt, nhưng trong trường hợp của tôi, đó là mã của riêng tôi đang treo (cũng không có các lớp). Điều này xảy ra khi gỡ lỗi chương trình đa xử lý, chủ yếu. – WoJ

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