在Mac(10.6.8)上为Django初始化virtualenvwrapper

时间:2012-11-06 01:04:08

标签: django macos osx-snow-leopard virtualenvwrapper initializing

我想使用Django并创建虚拟环境。我不太了解virtualenvwrapper网站上的初始化步骤文档。我在/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages中安装了virtualenvwrapper。我已经安装了XCode,Homebrew和Posgres。

文档告诉我:

  

$ export WORKON_HOME =〜/ Envs

     

$ mkdir -p $ WORKON_HOME

     

$ source /usr/local/bin/virtualenvwrapper.sh

     

$ mkvirtualenv env1`

我对第一行感到特别困惑。它是否告诉我需要创建名为'WORKON_HOME'的项目文件夹并将其导出到另一个名为'Envs'的文件夹中? (我在我的Mac上搜索了两个文件夹,但没找到它们)。然后在第二行我创建另一个目录'WORKON_HOME'? 如果您有更好的解释/教程的建议或链接,我将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:3)

将这3行放在~/.bash_profile文件中: -

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/work
source `which virtualenvwrapper.sh`

$HOME环境变量指向用户的家。也称为tilda“〜”,即/Users/your_osx_username/

WORKON_HOME是您在export文件中使用~/.bash_profile调用分配的新环境变量。这是保存所有新创建的virtualenv目录的地方。

PROJECT_HOME是您通常手动放置所有自定义项目目录的位置。与你的virtualenvs无关,但只是一个简单的参考点,你可以使用cd $PROJECT_HOME语法。

which virtualenvwrapper.sh指向bash脚本virtualenvwrapper.sh所在的位置,因此当您获取该bash脚本时,该bash脚本中的函数可用于mkvirtualenv次调用。

无论何时打开“新shell”(新选项卡,在首次更新~/.bash_profile文件后关闭当前选项卡),所有这些环境变量和bash函数都可以在shell中使用。

当我们使用mkvirtualenv -p python2.7 --distribute my_new_virtualenv_1创建一个新的virtualenv时,实际发生的是一个名为my_new_virtualenv_1的新目录,其中包含一个指向全局python2.7的符号链接,并且新的python site-packages sub -directory在~/.virtualenvs/目录中创建。参考: -

calvin$ mkvirtualenv -p python2.7 --distribute my_new_virtualenv_1
Running virtualenv with interpreter /opt/local/bin/python2.7
New python executable in my_new_virtualenv_1/bin/python
Installing distribute..........................................................................................................................................................................................................done.
Installing pip................done.
virtualenvwrapper.user_scripts creating /Users/calvin/.virtualenvs/my_new_virtualenv_1/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/calvin/.virtualenvs/my_new_virtualenv_1/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/calvin/.virtualenvs/my_new_virtualenv_1/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/calvin/.virtualenvs/my_new_virtualenv_1/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/calvin/.virtualenvs/my_new_virtualenv_1/bin/get_env_details

所以,如果你这样做

cd ~/.virtualenvs/my_new_virtualenv_1
calvin$ tree -d
.
├── bin
├── include
│   └── python2.7 -> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7
└── lib
    └── python2.7
        ├── config -> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config
        ├── distutils
        ├── encodings -> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/encodings
        ├── lib-dynload -> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload
        └── site-packages
            ├── distribute-0.6.28-py2.7.egg
            │   ├── EGG-INFO
            │   └── setuptools
            │       ├── command
            │       └── tests
            ├── pip-1.2.1-py2.7.egg
            │   ├── EGG-INFO
            │   └── pip
            │       ├── commands
            │       └── vcs
            └── readline

您将在其中看到此目录结构。

当然注意您正在使用Envs并且我使用.virtualenvs作为虚拟环境保存目录。