2013-01-14 40 views
9

Tôi đã xem xét rất nhiều câu hỏi/câu trả lời khác cho chủ đề này nhưng không có kết quả.Nhập vấn đề thư viện - "ImportError: No Module có tên ____"

Tôi đã tải xuống gọn gàng và nltk bằng pip và dựa trên thông báo tôi biết vị trí cài đặt là: Requirement already satisfied (use --upgrade to upgrade): nltk in /usr/local/lib/python2.7/site-packages, vì vậy có vẻ như cài đặt trong thư mục cho phiên bản 2.7.

Khi tôi chạy python Tôi nhận được Python 2.7.3 (v2.7.3:70274d53c1dd, Apr 9 2012, 20:52:43), vì vậy đó rõ ràng là phiên bản 2.7.

Tuy nhiên, khi tôi thử "nhập nltk" hoặc "nhập gọn gàng" trong bảng điều khiển Python, tôi luôn gặp lỗi ImportError: No module named nltk. Bất kỳ lời khuyên nào sẽ được đánh giá cao!

+1

Dường như bạn có nhiều cài đặt python và 'nltk' được cài đặt trong" python khác ". Thay đổi 'PYTHONPATH' là một thủ thuật xấu xí. Hãy xem câu trả lời này và xem đó có phải là tình huống của bạn không: http://stackoverflow.com/a/12206868/565999 –

Trả lời

17

Thử thay đổi biến môi trường PYTHONPATH. Nếu bạn đang sử dụng BASH dưới đây sẽ làm việc. Các vỏ Linux khác sẽ hơi khác một chút về cách chúng gán các biến môi trường.

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages 
+2

Làm việc như một sự quyến rũ, cảm ơn! – NeelPatel

+0

Tôi đã phải xuất .../dist-packages để làm nltk và một số gói khác có thể truy cập thông qua terminal python. Cảm ơn gợi ý này. –

+0

thay đổi PYTHONPATH cũng làm việc python34 C: \ Python34 \ Lib \ site-packages (đường dẫn được hiển thị trong danh sách được nhập bởi sys cho pth trong sys.path: print pth nhưng bằng cách nào đó nó không hoạt động cho đến khi tôi chỉnh sửa pythonpath – JinSnow

9

Vấn đề là /usr/local/lib/python2.7/site-packages không có trong danh sách đường dẫn mặc định của bạn. Để xác minh điều này, hãy chạy các lệnh sau:

import sys 
for pth in sys.path: 
    print pth 

Bạn sẽ nhận được danh sách các thư mục tìm kiếm mô-đun. Như bạn có lẽ sẽ không có /usr/local/lib/python2.7/site-packages trong danh sách, bạn có các tùy chọn sau:

  1. Di nltk và cài đặt nó một lần nữa trong một trong các đường dẫn thư mục (lưu ý, rằng ví dụ trên Debian, nó có thể là /usr/local/lib/python2.7/dist-packages

    .
  2. vào mỗi lần chạy, thiết PYTHONPATH biến:. export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages (bạn có thể đặt lệnh này trong file $HOME/.bashrc)

  3. đặt một tập tin local.pth trong /usr/lib/python2.7/site-packages hoặc /usr/lib/python2.7/dist-packages (tùy thuộc vào đầu ra của tập lệnh ở trên), có chứa một dòng:

    /usr/local/lib/python2.7/site-packages 
    

    Điều này sẽ thêm thư mục này vào danh sách đường dẫn mặc định của bạn vĩnh viễn.

  4. (một này được khuyến khích chỉ dành cho một số gói hiếm khi được sử dụng phi tiêu chuẩn được cài đặt trong một số vị trí kỳ lạ, đó có lẽ không phải trường hợp của bạn) Vào đầu kịch bản của bạn (trước import nltk) thêm đoạn mã sau:

    import sys 
    sys.path.append("/usr/local/lib/python2.7/site-packages") 
    
Các vấn đề liên quan