操作系统: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安装”工作正常!
答案 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
让我接下来解释你所看到的不透明错误。有两件事情发生了:
jython.exe实际上是Jython启动器;我们使用的真正的Jython可以在jython --print
的输出中看到;它是org.python.util.jython
,加上一堆其他选项。但我们需要一个exe,以便pip和其他工具可以工作。在Windows(或其他操作系统上,如果打开了例如分析),启动程序使用子进程来调用Java可执行文件。此子流程调用位于line 435 of jython.py。
是的,这是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使用的一些内部方案。
我们需要完成发布说明wiki更新我提到的那个bug!当然,修复该错误,以便它提供更好的错误信息,并可能在某些情况下恢复。
答案 1 :(得分:0)
我还安装了Jython,并将JAVA_HOME设置为C:\ Program Files \ Java \ jdk-10.0.2后也遇到了相同的错误。