2011-08-03 76 views
8

我刚刚将Snow Leopard更新到Lion。然后我需要安装virtualenvvirtualenvwrapper。我用于两个easy_install。 我还添加virtualenvwrapper设置我的.bash_profile文件如下:Mac OS X Lion上的Virtualenvwrapper错误

# virtualenvwrapper settings 
export WORKON_HOME="~/virtualenvs" 
source "/usr/local/bin/virtualenvwrapper.sh" 

但采购时,我收到以下错误:

ERROR: Could not create temporary file name. Make sure TMPDIR is set. 
virtualenvwrapper.sh: There was a problem running the initialization hooks. 
If Python could not import the module virtualenvwrapper.hook_loader, 
check that virtualenv has been installed for VIRTUALENVWRAPPER_PYTHON=/Library/Frameworks/Python.framework/Versions/2.7/bin/python and that PATH is set properly. 

感谢大家的帮助。

回答

13

由于/Library/Frameworks/Python.framework/Versions/2.7/bin/python是通向一个单独安装的Python 2.7(可能从python.org安装程序),而不是Apple提供的Python 2.7(/usr/bin/python2.7),你需要确保你使用的是easy_install为独立Python或更改为使用Apple提供的Python。要做任何一个,你应该确保你的shell的PATH变量是正确的。对于第一种情况,你应该能够做安装一个easy_install如下:

cd /tmp 
curl -O http://python-distribute.org/distribute_setup.py 
sudo $VIRTUALENVWRAPPER_PYTHON distribute_setup.py 

您可以修复你的shell路径包括框架bin目录。如果您正在使用bash,一个办法是此行添加到~/.bash_profile

export PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}" 

然后打开一个新的终端会话。您现在应该发现easy_install您刚才安装的是正确的:

$ which easy_install 
/Library/Frameworks/Python.framework/Versions/2.7/bin/easy_install 
+0

嗨Ned“蟒蛇人”Deily!非常感谢你的回答。 在你的回答之后,我想到了可能在查找帮助之前,我还需要更新我的Python安装。所以,这样做,在我的iMac全能工作如预期,而在我的MacBook不... ... :( 我,然后,你跟着你的智慧和固定它的话真的,真的很感谢你。 '/ usr/local/bin /'。在你的指令之后,它们在我的'$ VIRTUALENVWRAPPER_PYTHON'中(也就是说,我已经将它添加到我的'.bash_profile'文件中的'$ PATH') exaclty'distribute_setup.py' does?tnx –

+0

最简单的思考方式是每个Python实例都必须有自己的'easy_install' commnad。'distribute_setup.py'脚本为Python实例安装一个'easy_install'版本它正在运行。 –

+0

再次感谢。希望能够使用'virtualenv',我现在应该能够在虚拟环境中直接更新到主要的Python版本,并且可以使用其他版本管理特定的库。 作为刚刚学习Python,我相信我们会再次见面,在此先感谢您的宝贵帮助。 –

0

我也有类似的问题,我通过导出$ TMPDIR一个理智的路径,而不是随机的废话是Mac OS X的喜欢解决它。

$ grep TMPDIR ~/.env 
export TMPDIR=/tmp/ 

$ source .env 

现在virtualenvwrapper可以创建它的临时文件。为了长话短说,只需将export TMP=/tmp/whatever添加到您的shell运行时配置文件(例如,对于ZSH,它是~/.zsh,对于bash它是~/.bashrc)。