O conceito por trás desses arquivos é simples e análogo a outras ferramentas já existentes, se você tiver alguma familiaridade com o Ruby Bundler ou o Npm do Node. Pipenvé uma ferramenta de gerenciamento de pacotes e de ambiente virtual que usa os arquivos Pipfile e Pipfile.lock para atingir esses objetivos.
O Pipenv lida com o ambiente virtual para você de uma maneira padrão padrão (não é mais necessário ativar e desativar). Abaixo, alguns princípios básicos para você começar, veja mais no site pipenv .
Começando
Comece a usar o pipenv é fácil, no tipo de pasta do seu projeto ...
$ pipenv install
... e se já tiver um requirements.txtarquivo, ele gerará um Pipfilearquivo com os requisitos e uma pasta do ambiente virtual; caso contrário, ele gerará um Pipfilearquivo vazio . Se você não gostou ou mudou de idéia sobre algo que instalou, basta digitar ...
$ pipenv uninstall <package>
... e você está pronto para ir. Para ativar o ambiente virtual que o pipenv já gerou, vá com ...
$ pipenv shell
... e seu ambiente virtual será ativado. Para deixar o meio ambiente ...
$ exit
... e você voltará à sua sessão original do terminal.
Pipfile
O arquivo Pipfile destina-se a especificar os requisitos de pacotes para seu aplicativo ou biblioteca Python, tanto para desenvolvimento quanto para execução. Você pode instalar um pacote usando simplesmente ...
$ pipenv install flask
... e será adicionado como uma dependência para implantação e execução ou usando ...
$ pipenv install --dev pytest
... e será usado como uma dependência para o tempo de desenvolvimento. A sintaxe do arquivo é bastante simples, como segue.
[[source]] # Here goes your package sources (where you are downloading your packages from).
url = "https://pypi.python.org/simple"
verify_ssl = true
name = "pypi"
[packages] # Here goes your package requirements for running the application and its versions (which packages you will use when running the application).
requests = "*"
flask = "*"
pandas = "*"
[dev-packages] # Here goes your package requirements for developing the application and its versions (which packaes you will use when developing the application)
pylint = "*"
wheel = "*"
[requires] # Here goes your required Python version.
python_version = "3.6"
Pipfile.lock
O Pipfile.lock pretende especificar, com base nos pacotes presentes no Pipfile , qual versão específica deles deve ser usada, evitando os riscos de atualizar automaticamente pacotes que dependem um do outro e quebrar a árvore de dependência do projeto.
Você pode bloquear seus pacotes atualmente instalados usando ...
$ pipenv lock
... e a ferramenta pesquisará sua pasta do ambiente virtual para gerar o arquivo de bloqueio automaticamente, com base nas versões atualmente instaladas. A sintaxe do arquivo não é tão óbvia quanto no Pipfile ; portanto, por uma questão de concisão, ela não será exibida aqui.
GemfileeGemfile.lockdo mundo Ruby: O.lockarquivo possui versões específicas para cada dependência; aquele sem essa extensão tem apenas as versões conhecidas por controlar seres humanos. Dito isto, pedir uma explicação de algo que ainda está evoluindo e muito longe de ser bem definido, muito menos padronizado, talvez seja um pouco prematuro.