jython.exe“2.7.0最终版本”在我的Windows操作系统上执行失败

时间:2015-05-23 08:01:03

标签: pip jython

操作系统:Windows 7,64位

Here我了解到最新版本的Jython(下载/安装为“2.7.0”)包含“ensurepip”模块,希望安装pip。

这就是我得到的......注意我的机器上没有驱动器“Z:”

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

事实上,如果我只输入“jython”[返回],我就会得到上述错误!

在readme.txt文件中,我看到了:

  

这是Jython的2.7.0版本的最终版本。随着   与CPython 2.7.0,Jython 2.7的语言和运行时兼容性   为Python生态系统提供了大量支持。这包括   内置支持pip / setuptools(你可以使用bin / pip)和a   用于Windows的本机启动程序(bin / jython.exe),含有暗示   您最终可以在Windows上安装Jython脚本。

我不知道他们的意思是“你可以使用bin / pip”...... bin目录(Windoze上的\ bin)包含2个文件:jython.exe和python27.dll。

此外,我不知道如何使用此

运行Jython的交互式终端

15分钟后 2票!我没想到。我认为我的机器上可能出现的异常可能是我的责任。现在我开始怀疑Jython团队(顺便说一句是天才)是不是对Windoze盒子如此不感兴趣,他们只是将它打包并扔出去,而不在任何Windoze盒子上进行测试!

几天后

遵循Jim Baker的建议:完美顺利安装。 “pip安装”工作正常!

2 个答案:

答案 0 :(得分:5)

必须设置

JAVA_HOME,使%JAVA_HOME%\bin\java.exe是Java可执行文件,目标java.exe必须是Java 7.请参阅this Jython bug。请务必注意,该环境变量的其他一些可能设置不起作用 - 我们希望bin\java.exe可以加入JAVA_HOME(准确地使用os.path.join)。同样重要的是根据Windows在引用等方面所期望的完全设置JAVA_HOME

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

但不是

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

(完全不一样!试试看我的意思。)

调试这些问题的最简单方法是使用jython --print;例如,在我的系统上,我得到以下内容:

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

让我接下来解释你所看到的不透明错误。有两件事情发生了:

  1. jython.exe实际上是Jython启动器;我们使用的真正的Jython可以在jython --print的输出中看到;它是org.python.util.jython,加上一堆其他选项。但我们需要一个exe,以便pip和其他工具可以工作。在Windows(或其他操作系统上,如果打开了例如分析),启动程序使用子进程来调用Java可执行文件。此子流程调用位于line 435 of jython.py

  2. 是的,这是jython.py。它实际上使用的是CPython 2.7(感谢您使用CPython,我们喜欢您!),并由PyInstaller包装成可执行文件。关于&#34; Z:\ jythondev \ jython27 \ src \ shell \ build \ jython \ out00-PYZ.pyz \ subprocess&#34;的整个事情, 是因为我在我的Z:驱动器上构建了jython.exe,我在VMWare上安装的Windows 8.1已映射到我的OS X homedir。 (是的,我完全负责这个版本。)接下来,out00-PYZ.pyz引用了PyInstaller使用的一些内部方案。

  3. 我们需要完成发布说明wiki更新我提到的那个bug!当然,修复该错误,以便它提供更好的错误信息,并可能在某些情况下恢复。

答案 1 :(得分:0)

我还安装了Jython,并将JAVA_HOME设置为C:\ Program Files \ Java \ jdk-10.0.2后也遇到了相同的错误。