python虚拟环境配置

1、之前写过一篇文章,介绍了pyenv的虚拟环境设置,比较好用,换新电脑后,pyenv install 2.7.15,无论怎么样都出错,放弃它了。
2、后来有个测开给我介绍了一个pipenv,搜了一下,也挺好用。把安装过程写一下
首先pip install --user pipenv(我用的是brew install --user pipenv)
pip安装在
/Users/yourname/Library/Python/2.7/lib/python/site-packages/pipenv
brew安装在/usr/local/Cellar/pipenv

其实,到这里,已经安装好了。
其实他的命令很简单
具体可以查看这里.
大概说一下最核心的几个命令
pipenv install 直接安装pipfile和pipfile.lock两个文件里面的内容,创建的python版本也是pipfile里的版本。
首先它会校验 pipfile 和 pipfile.lock 是不是一致,如果一致就直接装 lock 里面的,如果不一致就先重新生成一份 lock 文件。
pipenv shell 进入到虚拟python环境 exit 或者ctrl+d退出

cd到你的项目文件夹
然后pipenv --python 3.7 这里根据你的python版本换成2.7
至此,已经建立好了一个pipenv的python环境。它的路径是/Users/yourname/.local/share/virtualenvs/Invest_App_UITest-lKTIJBzo

然后,我用pycharm选择pipenv的虚拟环境。官网有给出非常详细的步骤 可以只看这里

image.png

实际操作截图


image.png

image.png

这里有几点需要注意:
1、pipenv excutable里面填/Users/name/.local/share/virtualenvs/Invest_App_UITest-lKTIJBzo/bin/python2.7
2、install packages from pipfile 可以不勾选

这样应该会创建一个空的pipenv环境
然后
pipenv install -r requirements.txt
样我们可以重用之前的requirement.txt 文件来构建我们新的开发环境,可以把我们的项目顺利的迁到pipenv。

如果出错,可以把安装出错的库单独找出来。
然后切到虚拟环境:pipenv shell
进入到虚拟环境后,再安装出错的库。

直接用 pipenv install 会报错, m2crypto 安装的时候找不到 openssl。
用 pipenv shell 先切换到它的虚拟环境里面,再用下面这条命令就可以把 m2crypto 装上。
LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --prefix openssl)/include" SWIG_FEATURES="-I$(brew --prefix openssl)/include" pip install m2crypto

然后查看依赖关系:pipenv graph
如果看到还有?的库,继续安装。

这样就可以使用pipenv虚拟环境了。
删除虚拟环境:
pipenv --rm

进入虚拟环境
pipenv shell
退出虚拟环境
exit or Ctrl+D

安装好虚拟环境,也能正常运行,但是发现不能自动切换python虚拟环境。于是找
发现https://github.com/pypa/pipenv/wiki/Run-pipenv-shell-automatically
这里有介绍,如何自动进入到python虚拟环境的文件夹时,自动切换到虚拟环境(也就是执行pipenv shell)
具体做法:

function auto_pipenv_shell {
    if [ ! -n "${PIPENV_ACTIVE+1}" ]; then
        if [ -f "Pipfile" ] ; then
            pipenv shell
        fi
    fi
}

function cd {
    builtin cd "$@"
    auto_pipenv_shell
}

auto_pipenv_shell

把这段内容加到~/.zhsrc 然后加完之后,source ~/.zhsrc 退出终端,cd到配置了虚拟环境的文件夹,它会自动切到python虚拟环境,但是返回上一层后,发现他没有自动退出。感觉不是很好用。

继续找:autoenv
brew install autoenv # 安装 autoenv
cd到你的配置了python虚拟环境的文件夹
执行echo "pipenv shell" > .env 当然你也可以通过vi操作

# bash 的话,执行这一条指令
echo "source `which activate.sh`" >> ~/.bashrc
# zsh 的话,执行这一条指令
echo "source `/usr/local/Cellar/autoenv/0.2.1/activate.sh`" >> ~/.zshrc
或者直接在~/.zshrc加source /usr/local/Cellar/autoenv/0.2.1/activate.sh

source ~/.zshrc 退出终端,然后cd到目标文件夹。如果是第一次,系统会提示你确认是否以后都自动激活,输入 y ,然后回车确认即可。
但是发现,这里cd到其他文件夹,也还是停留在python虚拟环境,没有自动退出,方案也不够完美。
这里主要参考[Python]使用pipenv管理python虚拟环境懒人神器 autoenv

后来有人介绍一个据说,可以退出文件夹后,自动关闭python虚拟环境的。
Autoswitch Python Virtualenv
我的是oh-my-zsh
所以,我直接安装文档安装:
git clone "https://github.com/MichaelAquilina/zsh-autoswitch-virtualenv.git" "$ZSH_CUSTOM/plugins/autoswitch_virtualenv"
把代码放到了/Users/name/.oh-my-zsh/custom/plugins/autoswitch_virtualenv
然后在
~/.zshrc加

image.png

plugins=(autoswitch_virtualenv $plugins)

在~/.bash_profile加


image.png

export AUTOSWITCH_VIRTUAL_ENV_DIR=$HOME/.local/share/virtualenvs

然后source ~/.bash_profile
source ~/.zshrc
发现有提示


image.png

输入mkenv后,发现自动安装了python 3.7
而且提示要安装requirement.txt
感觉和pipenv是不一样的东西,是一个独立的配置虚拟环境的工具。没有和pipenv搭配使用,但是我的使用场景大部分是在pycharm,pycharm支持pipenv,所以,还是以pipenv为主,所以这个工具也放弃。
但是它有一个好处,cd到其他文件夹时,自动关闭python虚拟环境,和pyenv一样,很好用。
以上说的都作废,后来重启终端,可以识别pipenv环境。
所以我又恢复,但是恢复后,发现还是不行,一直报下面截图的错。

image.png

找了好久原因,终于知道了。参考这里
image.png

我把source ~/.bash_profile发到plugins前面去了


image.png

解决问题。

但是依然提示

提示

暂时还没找到解决方法。先将就用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,245评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,749评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,960评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,575评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,668评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,670评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,664评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,422评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,864评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,178评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,340评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,015评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,646评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,265评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,494评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,261评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,206评论 2 352

推荐阅读更多精彩内容

  • 其他介绍 Python库 mac 装python库装pip。然后用pip安装python库。系统自带easy_in...
    西电大侠阅读 1,051评论 0 1
  • 虚拟环境 虚拟环境是一个将不同项目所需求的依赖分别放在独立的地方的一个工具,它给这些工程创建虚拟的Python环境...
    洛克黄瓜阅读 1,519评论 0 0
  • 一、为什么安装python虚拟环境参考此文内容:virtualenv介绍及基本使用为了更详细多种使用场景说明,下面...
    ericblue阅读 1,027评论 0 0
  • 确保你已经有了 python 和 pip在您进一步之前,请确保您有 Python,并且可从您的命令行中获得。 你可...
    yiangdea阅读 1,202评论 0 1
  • python虚拟环境配置 Python 2和Python 3之间存在着较大的差异,并且,由于各种原因导致了Pyth...
    嘿嘿海海阅读 441评论 0 0