question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

To be truly deterministic, a maintainer of a Pipfile should be able to specify whether to use binary or source

See original GitHub issue

Currently, if it is necessary to specify source or binary installation of packages it is required for the end user to specify this using pip environment variables, e.g. PIP_NO_BINARY=psycopg2 pipenv install

The maintainer of the Pipfile has no way of specifying this directly, so must tell the end user through another channel. This leaves uncertainty as to which variant of the software has been installed

With requirements.txt is is possible for the maintainer to specify in the file the preference with options such as --no-binary psycopg2

I believe that adding binary and source options that default to true to the packages specifier would be a sensible way to replicate this behaviour for pipenv e.g.

[packages]
psycopg2 = {version = "~=2.7", binary=false}

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Reactions:2
  • Comments:6 (5 by maintainers)

github_iconTop GitHub Comments

1reaction
uranusjrcommented, Jul 10, 2019

I kind of feel this is a reasonable thing to ask for. The flag should probably not be binary, but tri-state (sdist-only, binary-only, and no preference), but the idea itself is good.

How do you think this should be implemented? I can think of two possibilities:

  1. When locking, use the flag to exclude certain types of artifacts from being included into the lock file (i.e. resolve the flag eagerly, on lock time).
  2. Simply populate the value to lock file, and use it to pick the desired artifact from the (not filtered) list (i.e. resolve the flag lazily, on install time).
0reactions
AlJohricommented, Jul 31, 2019
Read more comments on GitHub >

github_iconTop Results From Across the Web

pipenv Documentation - Read the Docs
Enables truly deterministic builds, while easily specifying only what you want. • Generates and checks file hashes for locked dependencies when installing from ......
Read more >
Advanced Usage of Pipenv - Python Packaging Authority
If you'd like to specify that a specific package only be installed on certain systems, you can use PEP 508 specifiers to accomplish...
Read more >
pipenv Documentation - manpages.ubuntu!
☤ PIPENV FEATURES ... Enables truly deterministic builds, while easily specifying only what you want. ... Generates and checks file hashes for locked...
Read more >
pipenv Documentation
define dependencies, see Pipfile vs setup.py. The problems that Pipenv seeks to solve are multi-faceted: • You no longer need to use pip...
Read more >
Pipenv: A Guide to the New Python Packaging Tool
Providing the --dev argument will put the dependency in a special [dev-packages] location in the Pipfile . These development packages only get installed...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found