2015-05-23 31 views
5

OS của tôi: Windows 7, 64-bitjython.exe "2.7.0 phát hành cuối cùng" không thực hiện trên hệ điều hành Windows

Here Tôi biết rằng phiên bản mới nhất của Jython (downloads/cài đặt như "2.7.0") bao gồm mô-đun "ensurepip", hy vọng cài đặt pip.

Đây là những gì tôi nhận được ... NB không có ổ đĩa "Z:" trên máy tính của tôi

D:\apps\jython2.7.0\bin>jython -m ensurepip 
Traceback (most recent call last): 
    File "<string>", line 444, in <module> 
    File "<string>", line 435, in main 
    File "Z:\jythondev\jython27\src\shell\build\jython\out00-PYZ.pyz\subprocess", 
line 522, in call 
    File "Z:\jythondev\jython27\src\shell\build\jython\out00-PYZ.pyz\subprocess", 
line 710, in __init__ 
    File "Z:\jythondev\jython27\src\shell\build\jython\out00-PYZ.pyz\subprocess", 
line 958, in _execute_child 
WindowsError: [Error 2] The system cannot find the file specified 

Trong thực tế, tôi nhận được lỗi trên nếu tôi chỉ cần nhập "Jython" [Return]!

Trong tập tin readme.txt Tôi thấy điều này:

Đây là phiên bản cuối cùng của phiên bản 2.7.0 của Jython. Cùng với khả năng tương thích ngôn ngữ và thời gian chạy với CPython 2.7.0, Jython 2.7 cung cấp hỗ trợ đáng kể cho hệ sinh thái Python. Điều này bao gồm hỗ trợ sẵn cho pip/setuptools (bạn có thể sử dụng với bin/pip) và một launcher bản địa cho Windows (bin/jython.exe), với ngụ ý mà cuối cùng bạn có thể cài đặt các tập lệnh Jython trên Windows.

Tôi không biết ý nghĩa của từ "bạn có thể sử dụng với bin/pip" ... thư mục bin (\ bin trên Windoze) chứa 2 tệp: jython.exe và python27.dll.

Hơn nữa tôi không biết làm thế nào để có được những thiết bị đầu cuối tương tác cho Jython chạy với điều này

15 phút sau 2 lên phiếu! Tôi đã không mong đợi điều đó. Tôi nghĩ đó có thể là điều gì đó bất thường tôi đã làm trên máy tính của tôi là để đổ lỗi. Bây giờ tôi bắt đầu tự hỏi liệu đội Jython (những người có thiên tài bằng cách này) chỉ là không quan tâm trong các hộp Windoze mà họ chỉ đóng gói này lên và ném nó ra khỏi đó mà không thử nghiệm nó trên bất kỳ hộp Windoze ở tất cả!

một vài ngày sau đó Tiếp theo lời khuyên Jim Baker: cài đặt hoàn toàn trơn tru. "pip install" hoạt động tốt!

+0

Đã đặt bất kỳ [biến môi trường] nào (http://www.jython.org/docs/using/cmdline.html#environment-variables) có thể gây nhầm lẫn cho jython? – mata

+0

Để trả lời câu hỏi của bạn, không, chỉ có env var mà tôi có thể tưởng tượng là có liên quan là JAVA_HOME, trỏ đến một JRE hoàn toàn hợp lệ. Nhưng bằng chứng dường như cho thấy rằng về cơ bản là sai với jar thực thi từ jython.org. Tôi chỉ cố gắng chạy một lần nữa và giải nén vào thư mục khác ... thậm chí "jython --version" trong thư mục \ bin sản xuất lỗi abover. Các distro chỉ xuất hiện để được điều sai lầm. –

+0

@mata ... hóa ra bạn đã đúng (đánh giá bởi kinh nghiệm của tôi) ... JAVA_HOME phải trỏ đến thư mục chứa dir \ bin với java.exe trong đó. Có vẻ như tôi đã sai theo cách nào đó! –

Trả lời

5

JAVA_HOME phải được đặt sao cho %JAVA_HOME%\bin\java.exe là tệp thực thi Java và java.exe đích phải là Java 7. Xem this Jython bug. Điều quan trọng cần lưu ý là một số cài đặt có thể khác cho biến môi trường đó không hoạt động - chúng tôi hy vọng rằng bin\java.exe có thể được kết hợp với JAVA_HOME (sử dụng chính xác os.path.join). Ngoài ra, điều quan trọng là để thiết lập JAVA_HOME chính xác theo những gì của Windows hy vọng về trích dẫn, vv:

set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_55

nhưng không

set JAVA_HOME="C:\Program Files\Java\jdk1.7.0_55"

(Không hề giống nhau Chỉ cần cố gắng nó! hiểu ý tôi chứ.)

Cách dễ nhất để gỡ lỗi các vấn đề này là với jython --print; ví dụ về hệ thống của tôi tôi nhận được những điều sau đây:

C:\jython2.7.0>set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_55 C:\jython2.7.0>bin\jython.exe --print "C:\Program Files\Java\jdk1.7.0_55\bin\java" -Xmx512m -Xss1024k -classpath C:\jython2.7.0\jython.jar;. -Dpython.home=C:\jython2.7.0 -Dpython.executable=C:\jython2.7.0\bin\jython.exe -Dpython.launcher.uname=windows -Dpython.launcher.tty=true org.python.util.jython

Hãy để tôi giải thích tiếp theo lỗi đục bạn đang nhìn thấy. Có hai điều đang diễn ra:

  1. jython.exe thực sự là trình khởi chạy Jython; Jython thực chúng ta sử dụng được nhìn thấy ở đầu ra của jython --print; nó là org.python.util.jython, cộng với một loạt các tùy chọn khác. Nhưng chúng ta cần một exe để pip và các công cụ khác có thể hoạt động. Trên Windows (hoặc trên các hệ điều hành khác nếu hồ sơ ví dụ được bật), trình khởi chạy sử dụng tiến trình con để gọi thực thi Java. Yêu cầu quy trình con này là trong line 435 of jython.py.

  2. Vâng, đó là jython.py. Nó thực sự sử dụng CPython 2.7 (cảm ơn vì đã được xung quanh CPython, chúng tôi thích bạn!), Và được gói vào một tập tin thực thi bởi PyInstaller. Toàn bộ điều về "Z: \ jythondev \ jython27 \ src \ shell \ build \ jython \ out00-PYZ.pyz \ subprocess", là do thực tế là tôi đã xây dựng jython.exe trên ổ Z: của tôi, trên đó cài đặt Windows 8.1 trên VMWare đã ánh xạ homedir OS X của tôi. (Có, tôi hoàn toàn chịu trách nhiệm về bản dựng này.) Tiếp theo, out00-PYZ.pyz đề cập đến một số lược đồ nội bộ được PyInstaller sử dụng.

Chúng tôi cần hoàn tất cập nhật wiki cập nhật mà tôi đề cập đến trên lỗi đó! Và tất nhiên sửa lỗi đó để nó cung cấp một thông báo lỗi tốt hơn và có thể phục hồi trong một số trường hợp nhất định.

+0

cảm ơn ... cài đặt hoàn toàn trơn tru, "yêu cầu cài đặt pip" hoạt động tốt. Phải có được con đường Java (tôi đã thay đổi nó một vài ngày trước đây trong kết nối với sthg khác) ... Honored để có cơ hội này để nói như thế nào tuyệt vời Jython, bằng cách này. Tôi có thể chỉ hỏi mặc dù: bất kỳ cơ hội chúng tôi có thể xin vui lòng xin vui lòng có một diễn đàn Jython chính thức? Danh sách gửi thư là loại clunky ... là nó bởi vì người mới sẽ không hỏi câu hỏi lặp đi lặp lại và/hoặc ngu ngốc để một diễn đàn có thể là một nỗi đau? –

+0

... và một điều khác nếu tôi có thể (trong khi bạn đang ở đây!) ... bộ não của tôi là cực kỳ thực hiện với câu hỏi của bẫy toàn diện Python ngoại lệ và Java Throwables ... nếu bạn có một mo bạn có thể lướt qua SO câu hỏi này tôi đã chỉ cần đưa lên? http://stackoverflow.com/questions/30534136/trap-exceptions-comprehensive-in-jython –

+0

Mike, bất kỳ chi tiết nào về ý nghĩa của một diễn đàn Jython chính thức, ngoài việc được gắn thẻ "jython" ở đây? Tôi nghĩ rằng SO là hợp lý thuận tiện, và đây là một chắc chắn một mục đích sử dụng dự định http://meta.stackexchange.com/a/133526 –

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