一直想要一个方便上手的环境配置方案,有时候项目多了管理起来就特别的麻烦。
(以前用的就是virtualenv、virtualenvwrapper-win,后面升级python3后,就用venv,以至于前面的virutalenv和virtualenvwrapper都已经忘了,但是python3 venv,各个版本不好切换。)
因此又在网上搜索查看了一些资料,有推荐Anaconda,安装过后发现太多了,而且导出的requirements 很多引用的本地的,到时候部署到生产环境很麻烦。
又有推荐的miniconda的,但是还没有安装使用,就被另一个方案给安利了。
**pyenv+pyenv-virtualenv ** 可以更好控制版本。
pyenv 安装
pyenv 可以让你更加方便的安装各个python版本,然后利用pyenv-virtualenv就可以直接创建虚拟环境。
但是在windows上只有pyenv-win,没有pyenv-virtualenv,因此也只能使用virtualenv配合virtualenvwrapper-win。也是非常不错的方案。
windows
安装
1
| pip install pyenv-win --target E:\pyenv\.pyenv
|
设置虚拟环境
在windows中虚拟环境配置 PATH 中添加
1 2
| E:\pyenv\.pyenv\bin E:\pyenv\.pyenv\shims
|
可能会发现当前还没有shims文件夹,后面会讲他的作用。
命令
in·stall安装:
1 2
| pyenv install --list pyenv install 3.8.0 -v
|
版本控制:
1 2 3 4 5 6
| pyenv version pyenv versions pyenv global 3.8.0 pyenv shell 3.8.0 pyenv local 3.8.0 pyenv shims
|
命令大全
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| pyenv commands:查看所有pyenv命令 pyenv exec:使用特定Python版本执行某条命令 pyenv global:设置或查看全局Python版本 pyenv hooks:列出给出的pyenv命令的钩子脚本 pyenv init:配置shell环境 pyenv install:安装某个版本的Python pyenv local:为某个应用设置特定的Python版本 pyenv prefix:显示对应Python版本的路径前缀 pyenv rehash:再哈希pyenv shims(不清楚有什么用,欢迎评论补充) pyenv root:显示pyenv根目录 pyenv shell:为某个shell设置特定的Python版本(与pyenv local类似) pyenv shims:列出当前存在的shims(pyenv的工作原理就是在一个叫shims的目录下创建Python解释器的“假版本”,寻找Python应用时先从该目录查找) pyenv uninstall:卸载某个版本Python pyenv --version:显示pyenv版本 pyenv version:显示当前Python版本,等价于pyenv version-name+pyenv version-file pyenv version-file/version-name/version-origin:当前Python版本对应的文件/名字/位置 pyenv whence:列出已安装的一个范围内的Python版本,比如列出本地安装的Python2到Python3的版本,可以使用pyenv whence 2to3 pyenv which:列出可执行文件的绝对路径,比如pyenv which python可以列出python命令的绝对路径
|
创建虚拟环境
github:https://github.com/pyenv/pyenv-virtualenv
利用pyenv-virtualenv快速创建,windows好像不行
1 2 3 4
| pyenv virtualenv 3.7.1 TEST pyenv activate TEST pyenv deactivate pyenv uninstall TEST
|
传统 virtualenvwrapper
github:https://github.com/davidmarble/virtualenvwrapper-win/
linux
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| sudo apt install virtualenv sudo apt install virtualenvwrapper sudo find / -name 'virtualenvwrapper.sh' mkdir ~/.virtualenvs or mkdir ~/envs export WROKON_HOME=~/.virtualenvs or envs
source /usr/local/bin/virtualenvwrapper.sh or 使用上马find找到的 virtualenvwrapper.sh
source ~/.bashrc
mkvirtualenv -p /usr/bin/python3 djangopy3
workon
deactivate
pip freeze > rexx.txt 打印出所有包 pip install -i https://pypi.douban.com/simple -r rexx.txt 安装所有包
|
windows
1 2 3 4 5 6 7
| pip install virtualenvwrapper-win
mkvirtualenv --python=xxx virtualenv_name workon workon virtualenv_name deactivate
|
参考:https://segmentfault.com/a/1190000039173896
参考:https://blog.csdn.net/OwangxinyangO/article/details/105712185
参考:https://zhuanlan.zhihu.com/p/27294128
python版本管理 对比:https://stackoverflow.com/questions/41573587/what-is-the-difference-between-venv-pyvenv-pyenv-virtualenv-virtualenvwrappe#:~:text=virtualenvwrapper%20is%20a%20set%20of,switching%20between%20different%20virtualenv%20directories.&text=This%20is%20different%20from%20virtualenv,in%20the%20current%20working%20directory.