2

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

文档告诉我:

$ export WORKON_HOME=~/Envs

$ mkdir -p $WORKON_HOME

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

$ mkvirtualenv env1`

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

回答

3

将这种三线在~/.bash_profile文件: -

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

$HOME环境变量指向你的用户的家中。也被称为蒂尔达“〜”,即/Users/your_osx_username/

WORKON_HOME是您在~/.bash_profile文件中使用export呼叫进行分配的新环境变量。这是所有新创建的virtualenv目录将被保留的地方。

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

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

每当你打开一个“新shell”(新标签,在第一次更新~/.bash_profile文件后关闭当前标签),所有这些环境变量和bash函数将在你的shell中可用。

当我们创建使用mkvirtualenv -p python2.7 --distribute my_new_virtualenv_1一个新的virtualenv,实际发生的是正在创建和新的Python站点包子目录在您~/.virtualenvs/创建了一个名为my_new_virtualenv_1包含一个符号链接到您的全局python2.7新目录目录。参考: -

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作为虚拟env保存目录。

+0

谢谢卡尔文。我试着按照你的指示,但我的终端给了我以下错误:'code'Traceback(最近呼叫最后):文件“”,第1行,在 ImportError:没有名为virtualenvwrapper.hook_loader.'code'的模块你知道吗可能会发生什么? – user1552159

+0

你是怎么按顺序安装'virtualenvwrapper'的? 'sudo pip安装virtualenvwrapper'? –

+0

我怀疑你的'python'版本可能仍然是默认的苹果发行的'python',它是python 2.7.1。你应该首先尝试安装python 2.7.3,可以通过'sudo port install python2.7'通过macports来完成,然后选择这个新的python 2.7.3作为默认'sudo port select --set python python27'并且遵循通过正确设置你的'PATH'。类似的设置在这里 - http://stackoverflow.com/questions/11507186/python-virtualenv-no-module-named-virtualenvwrapper-hook-loader –