关于Python虚拟环境管理,很多人一开始不以为意,把编程时所有依赖的库全安装在一起,要用的时候直接导入,看似非常方便,但是会造成很多隐患:
随着越来越多的python用于实际项目开发中,Python的虚拟环境管理工具出行了很多,最常用的便是virtualenv,virtualenvwrapper,pipenv这几种,事实上,这几种虚拟环境的管理都是基于virtualenv,只是做了不同的封装,达到了更好的效果。
安装pipenv
sudo pip install pipenv
注:无法用pip管理的包,pipenv同样无法使用。
pipenv依赖:psutil, virtualenv-clone, pew, certifi, urllib3, chardet, requests, mccabe, pyflakes, pycodestyle, flake8等第三方模块。
初始化
cd
pipenv install
该命令会初始化在你的项目根目录下生成pipfile文件
查看pipfile文件
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"
[packages]
[dev-packages]
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"
[packages]
django= "==2.0.6"
requests = "*" //*表示接受任何版本,默认安装最新版
[dev-packages]
然后执行pipenv install即可生成Pipfile.lock文件
当然上述步骤也可直接用命令行生成:
pipenv install django=2.0.6
pipenv install requests
这样也会安装依赖包并生成Pipfile.lock文件
{
"_meta": {
"hash": {
"sha256": "5f0257fe8c7a73db1c8de519faa92c658282a01087eb2bfafba7962704c23e27"
},
"host-environment-markers": {
"implementation_name": "cpython",
"implementation_version": "3.6.4",
"os_name": "nt",
"platform_machine": "AMD64",
"platform_python_implementation": "CPython",
"platform_release": "7",
"platform_system": "Windows",
"platform_version": "6.1.7601",
"python_full_version": "3.6.4",
"python_version": "3.6",
"sys_platform": "win32"
},
"pipfile-spec": 6,
"requires": {},
"sources": [
{
"name": "pypi",
"url": "https://pypi.python.org/simple",
"verify_ssl": true
}
]
},
"default": {},
"develop": {}
}
pipenv run python xxx.py
pipenv命令具有以下选项
$ pipenv
Usage: pipenv [OPTIONS] COMMAND [ARGS]...
Options:
--update 更新Pipenv & pip
--where 显示项目文件所在路径
--venv 显示虚拟环境实际文件所在路径
--py 显示虚拟环境Python解释器所在路径
--envs 显示虚拟环境的选项变量
--rm 删除虚拟环境
--bare 最小化输出
--completion 完整输出
--man 显示帮助页面
--three / --two 使用Python 3/2创建虚拟环境(注意本机已安装的Python版本)
--python TEXT 指定某个Python版本作为虚拟环境的安装源
--site-packages 附带安装原Python解释器中的第三方库
--jumbotron 不知道啥玩意....
--version 版本信息
-h, --help 帮助信息
可使用的命令参数:
Commands:
check 检查安全漏洞
graph 显示当前依赖关系图信息
install 安装虚拟环境或者第三方库
lock 锁定并生成Pipfile.lock文件
open 在编辑器中查看一个库
run 在虚拟环境中运行命令
shell 进入虚拟环境
uninstall 卸载一个库
update 卸载当前所有的包,并安装它们的最新版本
常用命令如下:
[[source]]
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"
[[source]]
url = "http://pypi.home.kennethreitz.org/simple"
verify_ssl = false
name = "home"
[dev-packages]
[packages]
requests = {version="*", index="home"}
maya = {version="*", index="pypi"}
records = "*"
这样就可以指定requests包从home源下载,maya包从pypi源下载
python_full_version
或 python_version 。执行时候回退到当前系统的默认Python版本。[scripts]
test = "python3 -m unittest discover -s ./tests"
dev = "python3 manage.py runserver 0.0.0.0:8000"
然后执行 pipenv run test 就相当于执行了 pipenv run python3 -m unittest discover -s ./tests,pipenv run dev 相当于 pipenv run python3 manage.py runserver 0.0.0.0:8000。非常方便的功能