在 Centos6 上配置 virtualenvwrapper

Configuring virtualenvwrapper on Centos6

我有一个 VPS 运行ning Centos6,它预装了 Python2.6。我已经在这条路径上安装了 Python3.6

/usr/local/bin/python3.6

我已经使用位于

的 pip 安装了 virtualenv
/usr/local/bin/virtualenv

然后我在 /etc/profile.d 下创建了一个 virtualenvwrapper.sh 文件(我被告知这是我需要做的),它在启动时产生错误:

/usr/bin/python: No module named virtualenvwrapper
virtualenvwrapper.sh: There was a problem running the initialization hooks.

If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for    
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is
set properly.

virtualenvwrapper 位于 /usr/local/bin/python3.6/site-packages

由于我是新手使用Linux我没想到文件virtualenvwrapper.sh中的代码(在/etc/profile.d下)

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh

更新

我现在已经编辑了/etc/profile.d下的virtualenvwrapper.sh文件如下

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3.6
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh

效果很好 - 我现在可以 运行 virtualenvwrapper 命令了。是否所有启动文件都已放置在 .virtualenvs 文件夹中(例如 initalize、postactivate 等)——这意味着当我创建虚拟环境时,它们将与这些文件一起放置?有更好的方法吗?

非常感谢

回答您的第二个问题:这就是 virtualenvwrapper 的工作原理。它将全局初始化文件放入~/.virtualenvs;对于每个虚拟环境,这些文件将 运行 (实际上是来源)。每个虚拟环境也会有单独的初始化文件。

~/.virtualenvs 中拥有所有虚拟环境有助于 virtualenvwrapper 管理所有环境。