-
Notifications
You must be signed in to change notification settings - Fork 108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace pipenv? #37
Comments
May also consider hatch, which appears not to use any other "special" files other than requirements.txt and setup.py (which are already used by pip). However it doesn't manage dependencies, a major downside. |
I think this setup is decent, although I'm biased since I'm used to how it's set up and it originated where I currently work :) The upside is that it's fast, easy to work with once you know how it works, has cached venvs, a lockfile of sorts (pinned requirements in a file suitable for deploys anyway), etc. However, the downsides are that it needs at least 4 files ( |
Resolved by #272 |
At this point I'm starting to be convinced pipenv is not the right solution for deploys, for a few reasons:
venv
for the production instance, and unless we specifically source the venv before running pipenv, or symlink a.venv
link to theshared/venv
folder and set thePIPENV_VENV_IN_PROJECT
env variable, it will create a different venv for each timestamped release, because they are at different paths.dependency = "*"
by default. This wreaks havoc on dependency pinning, in particular because if left unpinned before another person installs the dependency, version mismatches will ensue in the Pipfile.lock, with the resulting merge conflict requiring a brand-newpipenv lock
to fix or manual intervention. (Admittedly, this can be fixed by pinning a version at the start, but pip does this withpip freeze
automatically.)During development,
pipenv install
will install versions beyond those specified in the lockfile, even when not prompted to upgrade versions.With that said, there are major features of pipenv that remove pain points in development:
pipenv install
.pipenv install --deploy
.Alternatives might include poetry, the leading competitor to pipenv.
The text was updated successfully, but these errors were encountered: