Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
python-poetry
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
open
python-poetry
Commits
217599b9
Commit
217599b9
authored
May 08, 2022
by
David Hotham
Committed by
Arun Babu Neelicattu
May 08, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
remove pipenv comparison
parent
c9196740
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
0 additions
and
66 deletions
+0
-66
README.md
+0
-66
No files found.
README.md
View file @
217599b9
...
@@ -97,72 +97,6 @@ It takes inspiration in tools that exist in other languages, like `composer` (PH
...
@@ -97,72 +97,6 @@ It takes inspiration in tools that exist in other languages, like `composer` (PH
And, finally, I started
`poetry`
to bring another exhaustive dependency resolver to the Python community apart from
And, finally, I started
`poetry`
to bring another exhaustive dependency resolver to the Python community apart from
[
Conda's
](
https://conda.io
)
.
[
Conda's
](
https://conda.io
)
.
### What about Pipenv?
In short: I do not like the CLI it provides, or some of the decisions made,
and I think we can make a better and more intuitive one. Here are a few things
that I don't like.
#### Dependency resolution
The dependency resolution is erratic and will fail even if there is a solution. Let's take an example:
```
bash
pipenv install oslo.utils
==
1.4.0
```
will fail with this error:
```
text
Could not find a version that matches pbr!=0.7,!=2.1.0,<1.0,>=0.6,>=2.0.0
```
while Poetry will get you the right set of packages:
```
bash
poetry add oslo.utils
=
1.4.0
```
results in :
```
text
- Installing pytz (2018.3)
- Installing netifaces (0.10.6)
- Installing netaddr (0.7.19)
- Installing oslo.i18n (2.1.0)
- Installing iso8601 (0.1.12)
- Installing six (1.11.0)
- Installing babel (2.5.3)
- Installing pbr (0.11.1)
- Installing oslo.utils (1.4.0)
```
This is possible thanks to the efficient dependency resolver at the heart of Poetry.
Here is a breakdown of what exactly happens here:
`oslo.utils (1.4.0)`
depends on:
-
`pbr (>=0.6,!=0.7,<1.0)`
-
`Babel (>=1.3)`
-
`six (>=1.9.0)`
-
`iso8601 (>=0.1.9)`
-
`oslo.i18n (>=1.3.0)`
-
`netaddr (>=0.7.12)`
-
`netifaces (>=0.10.4)`
What interests us is
`pbr (>=0.6,!=0.7,<1.0)`
.
At this point, poetry will choose
`pbr==0.11.1`
which is the latest version that matches the constraint.
Next it will try to select
`oslo.i18n==3.20.0`
which is the latest version that matches
`oslo.i18n (>=1.3.0)`
.
However this version requires
`pbr (!=2.1.0,>=2.0.0)`
which is incompatible with
`pbr==0.11.1`
,
so
`poetry`
will try to find a version of
`oslo.i18n`
that satisfies
`pbr (>=0.6,!=0.7,<1.0)`
.
By analyzing the releases of
`oslo.i18n`
, it will find
`oslo.i18n==2.1.0`
which requires
`pbr (>=0.11,<2.0)`
.
At this point the rest of the resolution is straightforward since there is no more conflict.
## Resources
## Resources
*
[
Official Website
](
https://python-poetry.org
)
*
[
Official Website
](
https://python-poetry.org
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment