2013-04-30 31 views
7

Tôi không thể cho cuộc sống của tôi tìm ra những gì đang gây ra lỗi rất kỳ lạ này.Python ImportError cho strptime trong spyder cho windows 7

Tôi đang chạy tập lệnh trong python 2.7 trong IDE trình thám hiểm cho windows 7. Nó sử dụng datetime.datetime.strptime tại một thời điểm. Tôi có thể chạy mã một lần và nó có vẻ tốt (mặc dù tôi đã không hoàn thành gỡ lỗi, do đó, ngoại lệ đã được nâng lên và nó đã không hoàn thành bình thường được nêu ra), sau đó nếu tôi cố gắng chạy nó một lần nữa tôi nhận được sau đây (kết thúc traceback chỉ được hiển thị):

File "C:\path\to\test.py", line 220, in std_imp
self.data[key].append(dt.datetime.strptime(string_var, string_format_var))
ImportError: Failed to import _strptime because the import lockis held by another thread.

Tôi không chạy nhiều luồng với Luồng, vv Cách duy nhất để lấy mã qua quá trình này là khởi động lại hoàn toàn máy tính. Khởi động lại spyder sẽ không hoạt động. Các tìm kiếm trên web dường như không mang lại bất kỳ manh mối hoặc dấu hiệu nào của những người đã từng xảy ra điều này.

Có ai hiểu điều gì đang xảy ra không? Đây có phải là một số loại vấn đề GIL? Khóa nhập là gì và tại sao nó có vẻ ngăn cản tôi nhập phương thức này của mô đun datetime khi tôi đã thử chạy mã một lần?

+1

[this] (https://bugs.launchpad.net/openobject-server/+bug/947231/comments/8) có giúp được không? Nó có vẻ là một [lỗi đã biết] (http://bugs.python.org/issue7980). Có thể một mô-đun bạn đang sử dụng đang sử dụng luồng không? – mfitzp

+0

Thú vị, điều đó có hiệu quả, cảm ơn. Thêm cuộc gọi giả vào datetime.datetime.strptime lúc đầu giải quyết vấn đề. –

Trả lời

12

Giải pháp, như được lưu ý bởi mfitzp, là bao gồm một cuộc gọi giả tới datetime.datetime.strptime ở đầu tập lệnh.

ví dụ:

# This is a throwaway variable to deal with a python bug 
    throwaway = datetime.datetime.strptime('20110101','%Y%m%d') 
Các vấn đề liên quan