2013-05-25 19 views
5

Tôi đã triển khai một ứng dụng Java bao gồm Jython để chạy các tập lệnh Python. Khi tôi chạy ứng dụng đó từ IDE (Eclipse hoặc IDEA), thì tất cả đều hoạt động tốt, các kịch bản Python được xử lý chính xác.ImportError của các mô-đun Python chuẩn với Jython (trong tệp JAR)

Tuy nhiên, khi tôi đóng gói tất cả mọi thứ vào một tập tin JAR (sẽ được phát hành), bao gồm các tập tin jython.jar, sau đó tôi nhận được lỗi sau càng sớm càng ứng dụng Java cố gắng để chạy các script Python đầu tiên:

ImportError: No module named os 

Vì vậy, có vẻ như thư mục Lib với tất cả các mô-đun Python chuẩn không được tìm thấy. Tôi đã kiểm tra tệp jython.jar được bao gồm trong tệp JAR của ứng dụng Java và nó bao gồm thư mục Lib chính xác. Trong thực tế, đó là cùng một tập tin jython.jar cũng được sử dụng khi tôi chạy ứng dụng từ IDE, nơi nó hoạt động.

Tôi biết một người có thể chỉ định thông số -Dpython.path, nhưng tôi không biết phải đặt gì ở đây. Làm cách nào tôi có thể tham khảo thư mục Lib nằm trong tệp jython.jar nằm trong tệp JAR của ứng dụng chính?

Trả lời

0

Tôi gặp phải vấn đề tương tự, đây là giải pháp của tôi: Trong tập lệnh python của bạn, thêm đường dẫn Lib vào đường dẫn sys. Sau đây là mã:

import sys 
libPath="C:\\jython2.7b1\\Lib" 
sys.path.append(libPath) 
+0

Làm cách nào để giúp thư mục 'Lib' nằm trong tệp JAR? – Matthias

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