问题 venv / pyvenv中没有activate_this.py文件[重复]


这个问题在这里已有答案:


11695
2017-07-29 16:33


起源

对于读这篇文章的人我使用pyvenv,我想它还不是3.4版本的一部分。 - clifgray
你以某种方式解决了这个问题吗?如果是这样,我真的很感激这里的答案: 如何从python激活pyvenv vitrualenv? (activate_this.py已被删除?) - Chris Cooper


答案:


如你所知, pyvenv/对 venv 模块不附带 activate_this.py。但如果你需要这个功能,你可以借用 activate_this.py 从 virtualenv,把它放在预期的位置(virtualenv_path/bin/activate_this.py),然后使用它。它似乎工作正常。唯一的问题是 virtualenv Python 3的文档已经过时了(他们声称你使用过 execfile,这不存在)。 Python 3兼容的替代方案是:

activator = 'some/path/to/activate_this.py'  # Looted from virtualenv; should not require modification, since it's defined relatively
with open(activator) as f:
    exec(f.read(), {'__file__': activator})

没有 activate_this.py 确实是神奇的,所以你可以手动执行相同的更改,而不必掠夺 virtualenv (调整 PATHsys.pathsys.prefix等等,但借用使这种情况更简单。


9
2017-11-10 18:55



当我读到这个答案时,我真的吐了我的饮料:)。但它完全有效!如果这就是它的全部,为什么不只是python venv的一部分? - nackjicholson