如何在同一台机器上安装Python 2.7的多个副本?

时间:2014-11-06 14:54:02

标签: python windows

我想在我的Windows机器上一次在两个地方安装Python 2.7。例如,c:\ python27中的一个和c:\ myproduct \ python27中的另一个。官方安装人员拒绝让我这样做。如果在运行安装程序时已经安装,它会提示我并询问我是否要更改,修复或删除现有安装。

Stackoverflow上其他地方提到的TARGETDIR技巧也不起作用 - 如果我在cmd窗口中键入以下内容,我会得到相同的结果:

msiexec /i python-2.7.8.msi TARGETDIR=c:\myproduct\python27

那么,有没有在我的Windows机器上安装Python 2.7两次?

我想这样做的原因是:

  1. 我的产品需要安装32位版本的Python 2.7,因为它使用ctypes加载32位DLL。如果用户已安装了64位版本的2.7,我认为将32位版本安装在顶部是不安全的。
  2. 依赖于预装Python 2.7的用户很糟糕,因为他们可能会在以后卸载它。这会阻止我的产品工作。
  3. 如果我可以使其安装程序始终安装已知版本的Python,它会降低测试我的产品的复杂性。我可以依靠它处于已知状态。
  4. 我想将pyreadline模块添加到我的产品的Python安装中。我怀疑大多数用户宁愿我没有乱用他们的Python安装。
  5. 当用户卸载我的产品时,也应该删除它安装的Python。如果我在标准位置安装了Python,那么用户可能会将其用于其他目的,并且在卸载产品时会感到意外。

1 个答案:

答案 0 :(得分:0)

当安装了64位版本时,您应该能够在另一个文件夹中安装32位版本的Python 2.7。有关说明,请参阅How do I install Python 2.7.3 32 bit and 64 bit on Windows side by side。但是,自动执行此操作可能会非常棘手,您可能必须让用户自己安装它。

我建议你让用户安装32位的Python 2.7,如果他们已经有一个冲突的64位版本,请给他们说明如何做。然后在你的安装中:

  1. 确保已安装virtualenv(如果未安装,则安装)。
  2. 在您的应用程序文件夹中创建virtualenv
  3. 除了列表中的第二项之外,它还可以解决所有问题,我认为您只需接受,无论您做什么,如果有人删除了您需要的组件,您的应用程序将会失败。如果他们这样做,他们可以使用'修复'安装程序上的选项,您可以从中重新安装缺少的Python或告诉他们需要执行的操作。

    要安装virtualenv,我首先要安装pip(有关说明,请参阅https://pip.pypa.io/en/latest/installing.html,您需要下载get_pip.py并使用Python 2.7解释器运行它),然后只需运行pip install virtualenv