跨平台的virtualenv自动化

时间:2015-11-17 20:37:08

标签: python python-3.x virtualenv

在UNIX类型系统上使用virtualenv时,您可以执行以下操作:

import sys, os
INTERP = os.path.join(os.path.dirname(sys.argv[0]), 'env', 'bin', 'python')
if sys.executable != INTERP:
    os.execl(INTERP, INTERP, *sys.argv)

同样,在Win32上使用它时,您可以执行类似(但实际上不是)的操作:

import sys, os
INTERP = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), 'env', 'Scripts', 'python.exe'))
if sys.executable != INTERP:
    os.execl(INTERP, INTERP, *sys.argv)

我对这种模式有几个问题:

  1. 是否有一种普遍接受的方法可以更高层次,更跨平台的方式实现这一目标? (例如,可以指向环境目录并让它在env的解释器中查询/ execl的库)
  2. 是否有可接受的模式或至少合理的方法来检测环境是否已经设置,如果是,设置它(以及进行pip install -r requirements.txt等)?
  3. 对于上下文,我正在尝试自动化基于Python 3的构建系统,该系统可以在Windows和OSX上发生,我想限制必须维护的特定于平台的脚本的数量,并使该过程更加自动化 - 友好。

0 个答案:

没有答案