É uma ferramenta que melhora algumas funcionalidades do conjunto Pip e Virtualenv.
O pipenv cria, por padrão, a pasta de ambiente virtual na pasta interna dele. Para alterar esse caminho, você deve alterar o arquivo .bashrc no linux ou as variáveis de ambiente no windows.
Outra solução (funcionou no windows) é criar uma pasta chamada ‘.venv’ na raiz do projeto e o pipenv usará essa pasta.
Dentro do arquivo .bashrc, escrever o seguinte comando: export PIPENV_VENV_IN_PROJECT=1
Alguns comandos e seus comportamentos:
pipenv install django → Cria o ambiente virtual e instala o django, o arquivo Pipfile e o Pipfile.lock
Arquivo Pipfile → É o arquivo de configuração do pipenv
[[source]]
url = "<https://pypi.org/simple>"
verify_ssl = true # verificação de segurança das dependências, garatindo que os pacotes instalados são os que realmente você quer instalar, por assinatura pictografica.
name = "pypi"
[packages]
django = "*" # instalação genérica, sem especificar a versão
[dev-packages]
flake8 = "*" # instalação genérica, sem especificar a versão
[requires]
python_version = "3.10" # versão de python definida
Arquivo .lock → garante o building determinístico, com as bibliotecas em suas versões bem definidas.
{
"_meta": {
"hash": {
"sha256": "b6e007a418d4b6b8afda6cf3410b6f7fa0fa004ffa1489e0d7f65c309e559f9c"
},
"pipfile-spec": 6,
"requires": {
"python_version": "3.10"
},
"sources": [
{
"name": "pypi",
"url": "<https://pypi.org/simple>",
"verify_ssl": true
}
]
},
"default": {
"asgiref": {
"hashes": [
"sha256:89b2ef2247e3b562a16eef663bc0e2e703ec6468e2fa8a5cd61cd449786d4f6e",
"sha256:9e0ce3aa93a819ba5b45120216b23878cf6e8525eb3848653452b4192b92afed"
],
"markers": "python_version >= '3.7'",
"version": "==3.7.2"
},
"django": {
"hashes": [
"sha256:2a6b6fbff5b59dd07bef10bcb019bee2ea97a30b2a656d51346596724324badf",
"sha256:672b3fa81e1f853bb58be1b51754108ab4ffa12a77c06db86aa8df9ed0c46fe5"
],
"index": "pypi",
"version": "==4.2.2"
},
"sqlparse": {
"hashes": [
"sha256:5430a4fe2ac7d0f93e66f1efc6e1338a41884b7ddf2a350cedd20ccc4d9d28f3",
"sha256:d446183e84b8349fa3061f0fe7f06ca94ba65b426946ffebe6e3e8295332420c"
],
"markers": "python_version >= '3.5'",
"version": "==0.4.4"
},
"typing-extensions": {
"hashes": [
"sha256:88a4153d8505aabbb4e13aacb7c486c2b4a33ca3b3f807914a9b4c844c471c26",
"sha256:d91d5919357fe7f681a9f2b5b4cb2a5f1ef0a1e9f59c4d8ff0d3491e05c0ffd5"
],
"markers": "python_version < '3.11'",
"version": "==4.6.3"
}
},
"develop": {
"flake8": {
"hashes": [
"sha256:3833794e27ff64ea4e9cf5d410082a8b97ff1a06c16aa3d2027339cd0f1195c7",
"sha256:c61007e76655af75e6785a931f452915b371dc48f56efd765247c8fe68f2b181"
],
"index": "pypi",
"version": "==6.0.0"
},
"mccabe": {
"hashes": [
"sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325",
"sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"
],
"markers": "python_version >= '3.6'",
"version": "==0.7.0"
},
"pycodestyle": {
"hashes": [
"sha256:347187bdb476329d98f695c213d7295a846d1152ff4fe9bacb8a9590b8ee7053",
"sha256:8a4eaf0d0495c7395bdab3589ac2db602797d76207242c17d470186815706610"
],
"markers": "python_version >= '3.6'",
"version": "==2.10.0"
},
"pyflakes": {
"hashes": [
"sha256:ec55bf7fe21fff7f1ad2f7da62363d749e2a470500eab1b555334b67aa1ef8cf",
"sha256:ec8b276a6b60bd80defed25add7e439881c19e64850afd9b346283d4165fd0fd"
],
"markers": "python_version >= '3.6'",
"version": "==3.0.1"
}
}
}
Para instalar uma dependência, o pipenv permite instalar diretamente no ambiente de desenvolvimento, usando o comando: pipenv install --dev "nome da lib"
[[source]]
url = "<https://pypi.org/simple>"
verify_ssl = true # verificação de segurança das dependências, garatindo que os pacotes instalados são os que realmente você quer instalar, por assinatura pictografica.
name = "pypi"
[packages]
django = "*" # instalação genérica, sem especificar a versão
[dev-packages]
flake8 = "*" # instalação genérica, sem especificar a versão
[requires]
python_version = "3.10" # versão de python definida
pipenv install → cria o ambiente virtual e instala as dependencias do projeto
pipenv sync -d → permite criar o ambiente virtual e baixar as dependencias de desenvolvimento direto do arquivo pipfile.lock (inclui as dependências de dev e do projeto)
pipenv shell → ativa o ambiente virtual
exit → desativa o ambiente virtual
flake8 . → roda o flake8