如何配置 virtualenvwrapper 与 pyenv 一起使用

2024-03-11

我正在尝试设置我的 imac (mavericks) 以便能够轻松切换到不同版本的 python。我使用 rbenv 成功地为 Ruby 项目完成了此操作,并发现 pyenv 正是我在这方面所寻找的。我遇到的问题是使用 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 and /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 一起工作。

我希望我已经解释得足够好并遵守了所有的发帖规则。如果有更好的解决方案(更容易),那么我会洗耳恭听。任何帮助将不胜感激。

提前致谢。


我明白了。我的 ~/.bash_profile 中有下面的脚本

唯一的问题是,使用 pyenv 安装 python 后,您需要安装
在设置新的虚拟环境之前,在新的 python 环境中 (pip install virtualenvwrapper)。

然后你就可以走了。

export PYENV_ROOT="${HOME}/.pyenv"

if [ -d "${PYENV_ROOT}" ]; then
    export PATH="${PYENV_ROOT}/bin:${PATH}"
    eval "$(pyenv init -)"
fi
export PATH

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
export VIRTUALENVWRAPPER_SCRIPT=/usr/local/bin/virtualenvwrapper.sh
source /usr/local/bin/virtualenvwrapper_lazy.sh
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何配置 virtualenvwrapper 与 pyenv 一起使用 的相关文章

随机推荐

  • CMake:无法运行 MSBuild 命令:MSBuild.exe

    我正在尝试建立FIAT https ethiy github io FastImageAnnotationTool using CMakeWindows 10 上的 GUI CMake Error at CMakeLists txt 3 p
  • 创建一个 Swift Dictionary 子类?

    我可以子类化一个Swift Dictionary这样我就可以通过我的习俗Dictionary到期望普通的方法Dictionary Edit 就我而言 我想要我的定制Dictionary按插入顺序迭代其键 https stackoverflo
  • 我的 foursquare 身份验证、回调 url 和应用程序网站是什么?

    我试图将 foursquare API 集成到我的 iPhone 中 但一开始就卡住了 注册我的应用程序 它要求我提供callback url和应用程序网站 以便注册我的应用程序并获取我的身份验证代码 但我不明白我应该为这些链接输入什么 因
  • ODP.NET程序编译

    当我尝试使用 ODP NET 执行创建过程时 我收到 ORA 24344 成功但出现编译错误 但是 当我在 SQL Developer 中运行相同的语句时 它编译成功 有谁知道我需要更改什么才能编译我的程序 是字符集问题吗 我使用的是 Or
  • Apache Wink Accept() 失败并出现 NullPointerException

    我正在使用 Wink 1 2 在 jBoss EAP 6 1 7 2 1Final 上部署 RESTful Web 应用程序 并在所有请求上出现以下异常 b JBWEB000070 exception b pre java lang Nul
  • JSF“记住我”选项

    在其他语言中 当用户登录时 您可以将 cookie 的过期日期设置为与今天相差甚远 并且您可以实现此目的 我如何在 JSF2 中实现这个 我有一个 jsf sessionscoped bean 但是如何才能长时间维持这个会话呢 您也可以使用
  • 如何修复Hyperledger Fabric中“执行End-2-End场景失败”的问题?

    我正在尝试运行此处提供的 Fabric 示例 https github com hyperledger fabric samples tree release 1 2 first network https github com hyper
  • 从 Java 创建快捷链接 (.lnk)

    我正在用 Java 编写一个安装程序 启动器 并且需要能够在此过程中在用户桌面上创建快捷方式 我对任何想法都感兴趣 认为这是实现这一目标的最佳方法 我考虑过的一个选择是在 Windows 上使用 VB 脚本并使用本机 shortcut ex
  • 使用阻塞REST请求来实现发布/订阅

    最近 我被要求调查与电话系统供应商集成的可行性 该供应商希望使用 RESTful Web 服务提供电话事件 例如线路振铃 分机应答 呼叫清除 我指出 REST 是一个请求 响应协议 他们正在执行发布 订阅 他们建议的解决方案是发出 HTTP
  • 映射日期时间未转换为正确的格式

    我有这个映射器 在映射逻辑中我将检查属性是否具有属性 CustomDateConverAttribute 如果有 我将调用一个函数将字符串转换为正确的格式 CreateMap
  • 如何取消 HostingEnvironment.QueueBackgroundWorkItem

    有没有办法取消后台任务HostingEnvironment QueueBackgroundWorkItem 有CancellationToken它会通知任务是否被取消 但我该怎么做 参考https msdn microsoft com en
  • Python 无法识别两个相等的字符串

    我在 python 中遇到了一个关于字符串的奇怪问题 我有两个列表 我必须在两个字符串中找到相同的名称 第二个列表是来自之前打开的文件的 readline 这是我的代码 import requests import sys from bs4
  • 将 y 轴网格线添加到 D3 甘特图

    将水平网格线添加到 d3 甘特图的最佳方法是什么这个例子 http bl ocks org baramuyu be8e3005cfcb0aba5f763963c75f3c7e 我最初想制作一个轴并在图表的长度上做刻度线 如这个例子 http
  • 将变量传递给 Mako 模板

    在 Perl 中 通过使用 Template Toolkit 这就是我所做的 Perl my vars name gt Count Edward van Halen tt gt process letters overdrawn vars
  • 通过引用传递参数

    我想问是否可以通过引用将参数传递给脚本函数 即在 C 中执行如下所示的操作 void boo int myint myint 5 int main int t 4 printf d n t t gt 4 boo t printf d n t
  • Angular HttpInterceptor 不更改标头

    我编写了一个 Angular 4 3 6 HttpInterceptor 来添加一些标头字段 但是如果我在调试器中检查它们 标头不会更新 任何想法 import Injectable from angular core import Htt
  • python读取大数据的不同方式

    我正在处理大数据 因此找到一种读取数据的好方法非常重要 我只是对不同的阅读方法有点困惑 1 f gzip open file r for line in f process line how can I process nth line c
  • 更改 Flask/Dash 中的图标

    试图获得favicon加载我遵循了互联网上的建议 server Flask name static folder static app dash Dash external stylesheets external stylesheets
  • Jquery 的选择插件,带有链接插件和选择框

    我是新来的 所以这就是问题 我尝试将所选插件 http harvesthq github com chosen 与链接插件 http www appelsiini net projects chained 一起用于我的选择框 但效果不佳 这
  • 如何配置 virtualenvwrapper 与 pyenv 一起使用

    我正在尝试设置我的 imac mavericks 以便能够轻松切换到不同版本的 python 我使用 rbenv 成功地为 Ruby 项目完成了此操作 并发现 pyenv 正是我在这方面所寻找的 我遇到的问题是使用 pyenv 创建虚拟环境