Windows上共存的Python程序

2024-10-01 11:23:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一种方法,让多个Python程序在同一台Windows机器上共存。在

问题是这样的:假设程序A需要Python2.5,B需要2.6,C需要3,并且每个程序都需要自己版本的Qt、Wx或其他任何模块。在

尝试在同一台机器上安装所有这些依赖项会破坏某些功能,例如,您可以并行安装不同版本的Python,但其中只有一个版本可以具有.py文件关联,因此如果您将其交给Python 2.5,那么B和C将无法工作,等等

理想的情况是,如果程序A可以与它自己的Python解释器Qt/Wx/MySQL driver/whatever一起生活在C:\A中,并且永远不接触该目录之外的任何东西,B和C也是如此

除了走完整的虚拟盒子路线之外,还有什么方法可以实现这一点吗?在

编辑:我尝试过批处理文件解决方案,但它不起作用。也就是说,它可以在简单的测试脚本上工作,但是如果OpenRPG所需的Python版本不拥有文件关联,那么OpenRPG在加载过程中的某个时候会失败。在


Tags: 模块文件方法py程序功能版本机器
3条回答

一种解决方案是编写一个批处理文件,为给定的应用程序调用正确的解释器。这样,您就可以在单独的文件夹中安装其他解释器。在

可能不完美,但它很管用。在

使用批处理文件运行脚本,在记事本中写入例如:

c:\python26\python.exe C:\Script_B\B.py

把它保存为跑步蝙蝠(或者别的什么。蝙蝠)。它将在c:\python26中与解释器一起运行\python.exe在空白后指定的文件。在

VirtualEnv。在

virtualenv is a tool to create isolated Python environments.

The basic problem being addressed is one of dependencies and versions, and indirectly permissions. Imagine you have an application that needs version 1 of LibFoo, but another application requires version 2. How can you use both these applications? If you install everything into /usr/lib/python2.4/site-packages (or whatever your platform's standard location is), it's easy to end up in a situation where you unintentionally upgrade an application that shouldn't be upgraded.

见前面的答案here。在

另一个您应该看看的工具是pip,它非常适合将库的特定版本安装到虚拟环境中。例如,如果您需要为一个应用程序运行pythonv2.x中某个库的v1.0,而在pythonv2.x中运行同一个库的1.1,那么您将需要virtualenv plus一种在该环境中安装特定版本的方法。Virtualenv+pip是您的最佳选择。在

相关问题 更多 >