Windows中的Python主目录/存在多个版本的问题

Windows中的Python主目录/存在多个版本的问题,python,windows,collabnet,Python,Windows,Collabnet,我使用Python3开发CollabNet Subversion Edge作为版本控制软件。Subversion Edge附带了一个名为ViewVC的小程序,该程序是用Python 2编写的,它也直接捆绑在一起。有一个系统环境变量称为PYTHONHOME 如果从Subversion Edge将其设置为Python2发行版,我的Python3将不会启动(甚至不会空闲),而是给出一个运行时错误消息框 如果设置为Python3,则ViewVC不起作用 有没有一种方法可以使两者同时工作?编写一个.b

我使用Python3开发CollabNet Subversion Edge作为版本控制软件。Subversion Edge附带了一个名为ViewVC的小程序,该程序是用Python 2编写的,它也直接捆绑在一起。有一个系统环境变量称为PYTHONHOME

  • 如果从Subversion Edge将其设置为Python2发行版,我的Python3将不会启动(甚至不会空闲),而是给出一个运行时错误消息框
  • 如果设置为Python3,则ViewVC不起作用

有没有一种方法可以使两者同时工作?

编写一个.bat或cmd文件,保存PYTHONHOME env var的值,调用ViewVC并等待它完成,然后将PYTHONHOME恢复到保存的值。

您根本不需要设置PYTHONHOME。Python使用它(如果已设置)来定位其安装。通常,它应该能够在没有此变量的情况下找到它:通过查看python可执行文件的路径名,如果没有找到,则通过查看注册表来查找。您是否考虑过将Subversion边缘服务更改为作为特定用户帐户运行,然后将PYTHONHOME环境变量仅移动到该帐户的用户级变量?与系统范围内的变量相反?看来应该行得通


顺便说一句,添加PYTHONHOME变量是为了让mod_python正常工作(这是为ViewVC服务的)。如果你能找到另一种方法让mod_python工作,那么你可以试试。

你说的“python可执行文件的路径名”是什么意思。。事实上,你是对的,当我重命名变量时,两者都能完美地工作!那么,这是干什么用的。。。谢谢运行Python时,通常会调用Python.exe。它位于磁盘上的某个位置(两次:一次用于2.x,一次用于3.x)。根据启动的版本,Python会找出它的安装位置。您好,谢谢您的补充意见。我一般都听说过这种服务实践,但在这里没有考虑过。也许值得一试。至于ViewVC,我已经重命名了env变量来编辑\uPythonhome_uuedit,现在这两个都可以工作。因此,您可能是错的(不过,我还没有在重新启动后尝试)