2016-12-12 18 views
6

Tôi có Python 3.6rc1 được cài đặt từ official "pkg" bundle cho Mac OS. Bây giờ, mỗi lần tôi sử dụng cấu hình chạy "gỡ lỗi" trong PyCharm (không phụ thuộc vào một tập lệnh cụ thể), tôi nhận được một dấu vết ngăn xếp lớn với các thông báo lỗi sau (ném nhiều lần liên tiếp):Mô-đun 'theo dõi' không có thuộc tính 'modname' trong khi cố gắng gỡ lỗi trong PyCharm (Python 3.6)

Traceback (most recent call last): 
    File "/Applications/PyCharm.app/Contents/helpers/pydev/_pydevd_bundle/pydevd_signature.py", line 88, in create_signature 
    filename, modulename, funcname = self.file_module_function_of(frame) 
    File "/Applications/PyCharm.app/Contents/helpers/pydev/_pydevd_bundle/pydevd_signature.py", line 102, in file_module_function_of 
    modulename = trace.modname(filename) 
AttributeError: module 'trace' has no attribute 'modname' 

Sử dụng PyCharm mới nhất 2016.3. Lưu ý rằng tôi có thể gỡ lỗi bằng cách sử dụng Python 2.7 hoặc 3.5 sử dụng cùng một cá thể PyCharm mà không gặp bất kỳ sự cố nào.

Có ai đã trải nghiệm bất cứ điều gì như thế này không? Có cách giải quyết nào không?


viết bài trên SO vì tôi không hoàn toàn chắc chắn điều này thực sự là một lỗi hay tôi đã sai điều gì đó; Ngoài ra, tôi biết rằng nhóm PyCharm kiểm tra thẻ pycharm tại đây; và, sẽ dễ dàng hơn cho những người khác tìm thấy chủ đề này ở đây trái với trình theo dõi lỗi của PyCharm.

+0

Dự án của riêng bạn có mô-đun có tên là 'dấu vết' không? – yole

+0

@yole từ những gì tôi thấy, không có gói 'trace.py' hoặc' trace' trong dự án. Nhưng, bạn đang đi đúng hướng - tôi không thể tái tạo vấn đề trong một dự án hoàn toàn mới. Vì vậy, nó phải làm với những gì bên trong dự án, tôi sẽ điều tra. Cảm ơn! – alecxe

+2

cũng xảy ra với tôi. Debug chạy tốt trên 3.5.2 nhưng thất bại với cùng một lỗi trên python 3.6 sử dụng PyCharm 2016.3 – emepe

Trả lời

9

Có thực sự là một bug vào những năm PyCharm PyDev.Debugger, nó sử dụng trace.modname mà không tồn tại kể từ khi Python 3.2:

def file_module_function_of(self, frame): #this code is take from trace module and fixed to work with new-style classes 
    code = frame.f_code 
    filename = code.co_filename 
    if filename: 
     modulename = trace.modname(filename) # < HERE 
    else: 
     modulename = None 
    # ... 

Bây giờ, mã đặc biệt này sẽ chỉ được thực hiện nếu debugger được bắt đầu với --save-signatures dòng lệnh tùy chọn được kích hoạt bởi "thông tin loại run-time Thu thập mã cái nhìn sâu sắc" thiết lập Python debugger:

enter image description here

Tắt cài đặt và lỗi sẽ biến mất.

+1

Tôi đã thử cách giải quyết của bạn và nó hoạt động! Ngoài ra, tôi đang theo dõi báo cáo vấn đề của bạn tại github. Cảm ơn. – emepe

+1

Cảm ơn bạn @alecxe. – vittore

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