2010-01-26 22 views
18

Tôi vừa tải xuống wxPython và đang chạy một số chương trình mẫu từ here. Tuy nhiên, trên mỗi dòng sử dụng biến từ wx. *, Tôi nhận được biến "Biến không xác định từ lỗi nhập"Biến không xác định từ nhập khi sử dụng wxPython trong pydev

Ví dụ: chương trình sau tạo năm lỗi trên đường 1,4,8 và hai trên dòng 5 :

import wx 
class MyFrame(wx.Frame): 
    """ We simply derive a new class of Frame. """ 
    def __init__(self, parent, title): 
     wx.Frame.__init__(self, parent, title=title, size=(200,100)) 
     self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE) 
     self.Show(True) 
app = wx.App(False) 
frame = MyFrame(None, 'Small editor') 
app.MainLoop() 

Chương trình, tuy nhiên, biên dịch và chạy hoàn hảo. Tôi đã không thực hiện bất kỳ sửa đổi đáng kể để pydev hoặc eclipse, và cài đặt wxPython là tươi.

+0

Tôi gặp sự cố tương tự. Có bất kỳ giải pháp nào cho vấn đề này có sẵn ngoài việc chờ các devolpers sửa chữa nó không? –

+0

Tôi đã có cùng một vấn đề và nó đã biến mất khi tôi cập nhật lên PyDev 1.5.6. –

Trả lời

3

Một số phiên bản mới hơn của pydev (vào khoảng tháng 1 năm 2010) có thời gian khó theo dõi các tên được nhập. Có lẽ không có gì.

Nếu đây là vẫn xảy ra, báo cáo lỗi cho aptana appcelerator, mặc dù không có nghi ngờ họ đã biết về nó.

Tôi gặp sự cố này khi làm việc với các gói mà tôi vừa tải xuống gần đây và cuối cùng lỗi sẽ biến mất. Vấn đề gần đây nhất của tôi là sau khi tải xuống trò chuyện pygame (vào khoảng tháng 1 năm 2010).

Sửa

Tôi đã sửa đổi câu trả lời của tôi ở trên kể từ khi mọi người đang downvoting nó, và tôi giả định đó là vì thông tin là cũ, hoặc vì Appcelerator mua aptana. Tôi đã không sử dụng pydev với Eclipse trong gần 2 năm và tình hình bây giờ có thể khác.

+0

Tôi không nghĩ đây là lỗi, mặc dù có thể là vào tháng 1. Xem câu trả lời của tôi dưới đây. – oob

+0

Với pydev 1.5.6.2010033101, hôm nay tôi vẫn gặp lỗi nhập khi cố gắng bao gồm networkx lần đầu tiên. Thủ tục bạn đã đề cập trong câu trả lời là những gì tôi đã sử dụng kể từ tháng 1 năm 2010 để khắc phục sự cố. Đôi khi chỉ cần khởi động lại Eclipse là đủ (ví dụ: với pygame trở lại vào tháng 1 năm 2010), mặc dù trình thông dịch loại bỏ/thêm hoạt động mọi lúc. –

+0

Ngoài ra, tôi nghĩ rằng tôi nhớ đọc một nơi nào đó trên trang aptana một đề nghị để sử dụng phương pháp remove/add mà bạn liệt kê dưới đây như là một giải pháp. –

3

Sử dụng tổ hợp phím CTRL+1 trên văn bản lỗi và thêm #@UndefinedVariable hoặc #@UnresolvedImport vào cuối dòng tương ứng có lỗi, nó sẽ loại bỏ những cảnh báo này tạm thời. Xem câu trả lời này: How do I fix PyDev "Undefined variable from import" errors?

3

Hãy thử

wx = wx

Đừng hỏi tại sao. Cách tiếp cận này (mà tôi tìm thấy khi cố gắng để phá vỡ các vấn đề trong các bộ phận nhỏ hơn) dường như chỉ cần loại bỏ các vấn đề biến wx undefined.

3
#import wx 
from wx import wx #@UnresolvedImport 

sẽ khắc phục.

40

Điều này đã xảy ra với tôi. Tôi đã cài đặt PyDev và cấu hình nó và đi trên con đường vui vẻ của tôi. Một vài tháng sau, tôi đã cài đặt wxPython và gặp vấn đề tương tự. Một cách dễ dàng để sửa chữa là trong nhật thực:

Window -> Preferences -> Pydev -> Interpreter - Python

Chỉ cần loại bỏ các thông dịch viên mặc định và thêm một cái mới (nó có thể là một tương tự như bạn đã có trước đó) . Pydev/Eclipse tìm kiếm thông qua thư mục Cài đặt Python của bạn và thêm các đường dẫn chính xác vào PYTHONPATH của bạn. Tôi khởi động lại và tất cả đều tốt.Tôi nhận thấy nó đã thêm

C:\Python26\lib\site-packages\wx-2.8-msw-unicode

Vì vậy, bạn có thể chỉ cần thêm nó vào PYTHONPATH thay vì thực hiện tất cả các điều trên, giả định rằng đường dẫn là nơi thư mục này được cài đặt.

Bằng cách này, tôi đang sử dụng:

  1. Eclipse Helios
  2. Pydev 1.6.2.2010090812
  3. Python 2.6
  4. wxPython2.8-win32-unicode-2.8.11.0-py26

Nhưng tôi nghĩ đây phải là một giải pháp khá chung cho vấn đề.

+0

Chúc mừng! Lưu ý cho OsX: trình cài đặt wxpython dường như đặt wxpython ở một vị trí khác - sau khi thêm "/usr/local/lib/wxPython-unicode-2.8.11.0/lib/python2.6/site-packages/wx-2.8-mac- unicode "nó làm việc cho tôi – christianbrodbeck

+0

Đây là con đường để đi. – initzero

+0

+1 Làm việc cho tôi chạy PyDev 2.4.0 –

7

PyDev tìm tài liệu tham khảo khi bạn thiết lập các thông dịch viên trong

Window -> Preferences -> Pydev -> Interpreter - Python 

Nếu wxPython không trong thư mục site-packages của bạn khi bạn thiết lập đầu tiên người phiên dịch, sau đó các tham chiếu đến các đối tượng wx và tên sẽ không được biết đến chức năng tra cứu trình chỉnh sửa. Để sửa lỗi này, loại bỏ các thông dịch viên từ

Window -> Preferences -> Pydev -> Interpreter - Python 

và sau đó chọn mới. Thêm lại cài đặt python và nhấn áp dụng. Tại thời điểm này, Pydev sẽ nhập lại tất cả các đối tượng gói trang web và nên nhập từ điển tra cứu. Bạn sẽ muốn khởi động lại Eclipse để thay đổi diễn ra.

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