如何让Sphinx在一台未经网络化的Windows 7计算机上使用Jython?

时间:2014-02-03 12:11:14

标签: windows jython python-sphinx jython-2.5

运行sphinx-apidoc后,命令C:\path\to\doc\make html会产生错误:

  

未找到'sphinx-build'命令[snip]

但是命令确实存在并且设置了相关的环境变量。

更多细节:

1 - 尝试运行sphinx_apidoc

  

'C:\ path \ to \ jython \ bin \ sphinx-apidoc'无法识别为内部或外部命令

2 - 使用Jython调用工作:带有合理选项的jython C:\path\to\jython\bin\sphinx-apidoc生成文档*.rst文件,conf.py等文件。

3 - make html然后产生以下错误:

  

未找到'sphinx-build'命令[snip]

然后建议设置SPHINXBUILD环境变量,甚至是PATH。我已经设置了这两个环境变量,通过调用echo %PATH%echo %SPHINXBUILD%证明了这一点。

这是我被卡住的地方。似乎Sphinx使用的文件(在这种情况下为sphinx-apidocsphinx-build)位于C:\path\to\jython\bin\目录中,没有任何文件后缀。当直接从Jython调用时,它们按预期工作(参见上面的第2点),但是当作为另一个进程的一部分被调用时(例如make html),它们将被识别并且执行失败(参见上面的第1点和第3点)。 / p>

有谁知道这个问题的原因,原因和最重要的“如何解决”?

我的设置过程是在未经过网络操作的Windows 7计算机上进行的。使用Jython安装程序安装了Jython(2.5.2)。然后通过在本地解压缩然后在其解压缩的目录中运行jython setup.py install来安装以下每个软件包(setuptools除外):

  1. setuptools:在同一目录中使用setuptools-1.4.2.tar.gz调用jython ez_setup.py(因此不会尝试下载)
  2. Jinja2(2.5)
  3. docutils(0.11)
  4. Pygments(1.6)
  5. Sphinx(1.2.1)
  6. numpydoc(0.4) - 仅提及,因为它也是在机器上安装的。

1 个答案:

答案 0 :(得分:1)

我设法让它运转起来。问题是手动安装和使用Jython意味着某些预期的环境变量没有到位。此外,使用Windows 7(我相信一般的MS Windows)意味着没有扩展的Python脚本无法通过Jython显式调用它们(Windows不检查shebangs)。最后,文件关联尚未设置(如CPython安装自动发生,但Jython没有发生)。

对于有类似问题的其他人,以下设置适用于我:

位置:

  • Java Runtime:C:\ Java \ jre7
  • Jython:C:\ Jython \ jython2.5.2

用户环境变量:

  • JRE_HOME:C:\ Java \ jre7
  • JAVA_HOME:%JRE_HOME%
  • CLASSPATH:。
  • JYTHON_HOME:C:\ Jython \ jython2.5.2
  • 路径:%JRE_HOME%\ bin;%JYTHON_HOME%\ bin

文件关联:

  • 在命令提示符下键入assoc .py=Python.File,将“Python.File”与“.py”扩展名关联。
  • 在命令提示符下键入ftype Python.File=C:\Jython\jython2.5.2\jython.bat "%1" %*以将Jython命令与“Python.File”类型的文件相关联。
  • 将'.py'(;.PY)附加到PATHEXT系统环境变量。这样就可以执行Python文件,而无需提供“.py”扩展名。 (N.B.这使得无法运行没有'.py'扩展名的Python文件。)

文件扩展名:

  • 重命名四个Sphinx命令以包含“.py”扩展名。对于vanilla Windows 7来说,这是非常困难的,因为它可以尽一切可能将用户与文件扩展名等“低级”细节区分开来,但命令提示符下的rename命令可以完成工作:输入ren sphinx* sphinx*.py时Jython bin目录。

现在应该可以从任何地方拨打sphinx-apidoc或类似名称。完成此操作后,从文档目录调用的命令make html应该按预期工作。