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的虚拟环境。官网有给出非常详细的步骤 可以只看这里

python虚拟环境配置_第1张图片
image.png

实际操作截图


python虚拟环境配置_第2张图片
image.png

python虚拟环境配置_第3张图片
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加

python虚拟环境配置_第4张图片
image.png

plugins=(autoswitch_virtualenv $plugins)

在~/.bash_profile加


python虚拟环境配置_第5张图片
image.png

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

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


python虚拟环境配置_第6张图片
image.png

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

python虚拟环境配置_第7张图片
image.png

找了好久原因,终于知道了。 参考这里
python虚拟环境配置_第8张图片
image.png

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


python虚拟环境配置_第9张图片
image.png

解决问题。

但是依然提示

python虚拟环境配置_第10张图片
提示

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

你可能感兴趣的:(python虚拟环境配置)