Vấn đề này phát sinh do cách trình thông dịch IPython dòng lệnh sử dụng đường dẫn hiện tại của bạn so với cách một quy trình riêng biệt thực hiện (có thể là sổ ghi chép IPython, quy trình bên ngoài, v.v.). IPython sẽ tìm kiếm các mô-đun để nhập không chỉ được tìm thấy trong sys.path của bạn, mà còn trên thư mục làm việc hiện tại của bạn. Khi bắt đầu một trình thông dịch từ dòng lệnh, thư mục hiện tại bạn đang hoạt động giống với thư mục bạn đã khởi động ipython. Nếu bạn chạy
import os
os.getcwd()
bạn sẽ thấy điều này là đúng
Tuy nhiên, giả sử bạn đang sử dụng sổ ghi chép ipython, hãy chạy os.getcwd()
và thư mục làm việc hiện tại của bạn thay vào đó là thư mục mà bạn đã bảo sổ ghi chép hoạt động trong tệp ipython_notebook_config.py (thường sử dụng c.NotebookManager.notebook_dir
cài đặt).
Giải pháp là cung cấp trình thông dịch python với đường dẫn đến mô-đun của bạn. Giải pháp đơn giản nhất là nối đường dẫn đó vào danh sách sys.path của bạn. Trong sổ ghi chép của bạn, trước tiên hãy thử:
import sys
sys.path.append('my/path/to/module/folder')
import module-of-interest
Nếu điều đó không hiệu quả, bạn đã có một vấn đề khác trong tay không liên quan đến đường dẫn nhập khẩu và bạn nên cung cấp thêm thông tin về vấn đề của mình.
Cách tốt hơn (và lâu dài hơn) để giải quyết vấn đề này là đặt PYTHONPATH của bạn , cung cấp trình thông dịch với các thư mục bổ sung tìm kiếm các gói / mô-đun python. Chỉnh sửa hoặc đặt PYTHONPATH làm var toàn cầu phụ thuộc vào os và được thảo luận chi tiết ở đây cho Unix hoặc Windows .