我正在尝试设置我的iMac(Mavericks)以便能够轻松地切换到不同版本的Python。我已经成功地为Ruby项目使用rbenv完成了此操作,并发现pyenv正是我在这方面寻找的东西。但是,我遇到的问题是使用pyenv创建虚拟环境。
我尝试安装pyenv-virtualenv,因为我认为它会很好地与pyenv一起使用,但目前它似乎无法工作,而且我很难获得详细的响应。首先,“activate”命令不起作用(尽管文档中有),并且一旦我安装了pyenv-virtualenv插件,pyenv就不再使用正确的Python版本。最终,我删除了该插件,并使pyenv重新开始工作。
现在我想使用常规的virtalenvwrapper与pyenv一起使用,但是一直遇到错误,我没有足够的经验来解决这些错误。
首先,我按照文档安装了pyenv、virtualenv和virtualenvwrapper。然后我使用pyenv安装了Python 2.7.6。这似乎运行良好,但当我尝试在.bash_profile中配置virtualenvwrapper设置时,出现以下错误:
如果我检查Python路径,会得到以下结果:
我尝试将
我不想使用
以下是我 .bash_profile 中相关的设置:
我很尴尬地承认,我花了约一周的时间从大量的帖子和教程中拼凑出来。我已经阅读了pyenv、virtualenv和virtualenvwrapper的文档,但我仍不清楚如何将其与pyenv配合使用。
我希望我已经足够清楚地解释了这个问题,并且遵循了所有的发布规则。如果有更好的解决方案(更容易),我会耳听八方。非常感谢您的任何帮助。
提前致谢。
我尝试安装pyenv-virtualenv,因为我认为它会很好地与pyenv一起使用,但目前它似乎无法工作,而且我很难获得详细的响应。首先,“activate”命令不起作用(尽管文档中有),并且一旦我安装了pyenv-virtualenv插件,pyenv就不再使用正确的Python版本。最终,我删除了该插件,并使pyenv重新开始工作。
现在我想使用常规的virtalenvwrapper与pyenv一起使用,但是一直遇到错误,我没有足够的经验来解决这些错误。
首先,我按照文档安装了pyenv、virtualenv和virtualenvwrapper。然后我使用pyenv安装了Python 2.7.6。这似乎运行良好,但当我尝试在.bash_profile中配置virtualenvwrapper设置时,出现以下错误:
-bash: /usr/local/bin/python: No such file or directory
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=/usr/local/bin/python and that PATH is
set properly.
如果我检查Python路径,会得到以下结果:
bin [master] >> which python
/usr/bin/python
bin [master] >> pyenv which python
/Users/insomniac/.pyenv/versions/2.7.6/bin/python
我尝试将
VIRTUALENVWRAPPER_PYTHON
设置为 /usr/local/bin/python
和 /usr/bin/python
,但是这些设置似乎都无效 - 我仍然得到相同的错误。我不想使用
/Users/insomniac/.pyenv/versions/2.7.6/bin/python
,因为那似乎是错误的,因为指定了Python的版本,这违反了能够切换Python版本的原则。以下是我 .bash_profile 中相关的设置:
# Set PYTHONPATH
export PYTHONPATH=/Users/insomniac/Repo/tools/python/:$PYTHONPATH
# User paths first
export PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:sbin:$PATH
# virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Repo
export PIP_VIRTUALENV_BASE=$WORKON_HOME
export PIP_RESPECT_VIRTUALENV=true
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
# Load virtualenvwrapper after paths are set
if [[ -s /usr/local/bin/virtualenvwrapper.sh ]]; then
source /usr/local/bin/virtualenvwrapper.sh
fi
# PYENV
# To use Homebrew directories rather than ~/.pyenv
#export PYENV_ROOT=/usr/local/opt/pyenv
eval "$(pyenv init -)"
# Load .bashrc if it exits (python definitions)
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
.bashrc文件有以下设置:
# allow install and upgrade of global package with pip
syspip(){
PIP_REQUIRE_VIRTUALENV="" pip "$@"
}
# run this for global install or upgrade
# syspip install --upgrade pip setuptools virtualenv
# PIP
# pip should only run if there is a virtualenv currently activated
# this it to prevent accidentally installing a package globally
# use syspip() to install globally
export PIP_REQUIRE_VIRTUALENV=true
# cache pip-installed packages to avoid re-downloading
export PIP_DOWNLOAD_CACHE=$HOME/.pip/cache
我很尴尬地承认,我花了约一周的时间从大量的帖子和教程中拼凑出来。我已经阅读了pyenv、virtualenv和virtualenvwrapper的文档,但我仍不清楚如何将其与pyenv配合使用。
我希望我已经足够清楚地解释了这个问题,并且遵循了所有的发布规则。如果有更好的解决方案(更容易),我会耳听八方。非常感谢您的任何帮助。
提前致谢。