Como estão o Pipfile e o Pipfile.fechadura usada?

parece que Pipfile/Pipfile.a fechadura destina-se a ser substituições para os requisitos.txt, no contexto da embalagem Python. No entanto, não há muita documentação sobre como eles realmente funcionam. Eu encontrei uma descrição evolutiva do pipfile na seção PyPi do site Python Aqui mas é bastante confuso e não explica a semântica das diferentes seções do arquivo.

Alguma dica sobre como entender estes ficheiros?

 164
Author: Martin Thoma, 2017-09-20

2 answers

O conceito por trás destes ficheiros é simples e analógico a outras ferramentas já existentes, se tiver alguma familiaridade com o Bundler ou o npm do nó de Ruby. Pipenv é um pacote e uma ferramenta de gestão de ambiente virtual que usa o Pipfile e o Pipfile.bloquear arquivos para alcançar esses objetivos.

O Pipenv lida com o ambiente virtual de uma forma padrão (não é necessário activar e desactivar mais). Em baixo, algumas noções básicas para começar, ver mais em pipenv sítio Web.

Começar

Começar a usar o pipenv é fácil, no tipo de pasta do seu projecto...

$ pipenv install

... e se já tiver um ficheiro requirements.txt, irá gerar um ficheiro Pipfile com os requisitos e uma pasta de ambiente virtual, caso contrário, irá gerar um ficheiro Pipfile vazio. Se você não gostou ou mudou de idéia sobre algo que você instalou, basta digitar...

$ pipenv uninstall <package>

... e estás pronto para ir. Para ativar o ambiente virtual que pipenv já gerado, vai com ele...

$ pipenv shell

... e o seu ambiente virtual será activado. Deixar o ambiente...

$ exit

... e você estará de volta à sua sessão de terminal original.

Pipfile

O ficheiro Pipfile destina-se a especificar os requisitos de pacotes para a sua aplicação ou biblioteca Python, tanto para o desenvolvimento como para a execução. Você pode instalar um pacote usando simplesmente...

$ pipenv install flask

... e será acrescentado como uma dependência de implantação e execução ou utilizando ...

$ pipenv install --dev pytest

... e será usado como uma dependência para o tempo de desenvolvimento. Em ambos os casos, se você precisar ser mais específico sobre a versão do pacote, como indicado na documentação pipenv faz uso dos mesmos especificadores de Versão usados pelo pip. A sintaxe do arquivo é bastante direta, como se 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 packages you will use when developing the application)
pylint = "*"
wheel = "*"

[requires] # Here goes your required Python version.
python_version = "3.6"

Pipfile.bloquear

O Pipfile.o lock destina-se a especificar, com base nos pacotes presentes em Pipfile , que versão específica destes deve ser usada, evitando os riscos de actualizar automaticamente os pacotes que dependem uns dos outros e quebrar a árvore de dependências do projecto.

Você pode bloquear os seus pacotes actualmente instalados usando...

$ pipenv lock

... e a ferramenta irá procurar a sua pasta de ambiente virtual para gerar o ficheiro de bloqueio para si automaticamente, com base nas versões actualmente instaladas. A sintaxe do arquivo não é tão óbvia quanto é para Pipfile por isso, por uma questão de concisão, não será exibida aqui.

 195
Author: dandev486, 2021-01-08 09:13:41

Como explicado acima por @Charles Duffy, é um análogo directo de {[[0]} e Gemfile.lock do mundo do rubi. Veja a referência abaixo para mais detalhes.

Referência: https://medium.com/never-hop-on-the-bandwagon/gemfile-and-gemfile-lock-in-ruby-65adc918b856

 -3
Author: Joshua Kan, 2020-09-08 06:22:27