virtualenv wrapper自定义目录?

0 投票
2 回答
2702 浏览
提问于 2025-04-18 06:16

我该如何在virtualenv wrapper中设置某个虚拟环境的位置呢?

我希望我现在和大部分未来的项目都能放在

~/.virtualenv

里,但我想让我这个网页项目的虚拟环境放在我的网页项目文件夹里。

谢谢!

2 个回答

0

设置环境变量 WORKON_HOME。比如:

export WORKON_HOME=$HOME/var/env

你可以在你的 ~/.bashrc 文件中设置这个变量。

详细说明可以在这里找到: http://virtualenvwrapper.readthedocs.org/en/latest/install.html

6

我怕这不太可能。virtualenvwrapper 是一个固定的工具,它在寻找虚拟环境时会遵循 WORKON_HOME 的设置。没有简单的方法可以把某个特定的虚拟环境指向一个特定的位置。我能想到的唯一解决办法就是用 ln -s 命令把你的虚拟环境链接到 WORKON_HOME,但这可能不是你想要的。

不过,如果你想使用放在任意位置的虚拟环境,你可以直接使用 virtualenv。当然,这样你会失去一些功能,比如 postactivatepredeactivate 等等,但替代这些功能并不是不可能。

补充:环境变量的小技巧

有一个小技巧(正如 James Mills 提到的),就是在加载特定的虚拟环境时,临时替换 WORKON_HOME。只需在你的命令前加上环境变量的覆盖:

$ WORKON_HOME=/where/you/want mkvirtualenv virtualenv_name

这样,虚拟环境就会被创建在 /where/you/want 这个位置。

撰写回答