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.

poetry picks pypy dependencies when executed in cpython environment

See original GitHub issue
  • I am on the latest Poetry version.
  • I have searched the issues of this repo and believe that this is not a duplicate.
  • If an exception occurs when executing a command, I executed it again in debug mode (-vvv option).

Issue

If a dependency has one or more subdependency specific to a Python implementation, poetry ignores the implementation details.

E.g. slash has the following requirements:

IPython==1.2.1; implementation_name=='pypy'
IPython; implementation_name!='pypy'

If your project depends on slash, in a cpython 3.7 environment, poetry uses

ipython==1.2.1

instead of

ipython==*

[ARCHIVED] Issue

Compiling this file

[tool.poetry]
name = "test"
version = "0.1.0"
description = ""
authors = ["None <none@example.com>"]

[tool.poetry.dependencies]
python = "3.7"
slash = "*"

[tool.poetry.dev-dependencies]

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

installs these packages

arrow==0.17.0
atomicwrites==1.4.0
attrs==20.3.0
Brotli==1.0.9
certifi==2020.11.8
chardet==3.0.4
colorama==0.4.4
confetti==2.5.3
dessert==1.4.1
emport==1.3.1
gossip==2.4.0
idna==2.10
ipython==1.2.1
Jinja2==2.11.2
libtmux==0.8.5
Logbook==1.5.3
MarkupSafe==1.1.1
munch==2.5.0
ordered-set==4.0.2
py==1.9.0
pyparsing==2.4.7
pyreadline==2.1
python-dateutil==2.8.1
raven==6.10.0
requests==2.25.0
sentinels==1.0.0
six==1.15.0
slash==1.12.0
SQLAlchemy==1.3.20
urllib3==1.26.2
vintage==0.4.1

Simply installing slash using pip installs these packages:

arrow==0.17.0
atomicwrites==1.4.0
attrs==20.3.0
backcall==0.2.0
Brotli==1.0.9
certifi==2020.11.8
chardet==3.0.4
colorama==0.4.4
confetti==2.5.3
decorator==4.4.2
dessert==1.4.1
emport==1.3.1
gossip==2.4.0
idna==2.10
ipython==7.19.0
ipython-genutils==0.2.0
jedi==0.17.2
Jinja2==2.11.2
libtmux==0.8.5
Logbook==1.5.3
MarkupSafe==1.1.1
munch==2.5.0
ordered-set==4.0.2
parso==0.7.1
pickleshare==0.7.5
prompt-toolkit==3.0.8
py==1.9.0
Pygments==2.7.2
pyparsing==2.4.7
python-dateutil==2.8.1
raven==6.10.0
requests==2.25.0
sentinels==1.0.0
six==1.15.0
slash==1.12.0
SQLAlchemy==1.3.20
traitlets==5.0.5
urllib3==1.26.2
vintage==0.4.1
wcwidth==0.2.5

My understanding is that the two lists should be identical. They are not.

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Reactions:2
  • Comments:18 (4 by maintainers)

github_iconTop GitHub Comments

1reaction
gragibcommented, Nov 15, 2020

I have updated the issue title and description.

1reaction
sinoroccommented, Nov 15, 2020

OK. Then it looks like a bug to me as well. Poetry should not be insisting on ipython==1.2.1 since you are not on pypy.

Read more comments on GitHub >

github_iconTop Results From Across the Web

How to Effortlessly Publish your Python Package to PyPI ...
A virtual environment is a tool that helps to keep dependencies ... To run the script, combine poetry run and python pretty.py command:...
Read more >
Poetry install fails for nested local dependencies and develop ...
If an exception occurs when executing a command, I executed it again in debug mode ( -vvv option). Standard Python:3.8 docker image; 1.1.4 ......
Read more >
Dependency Management With Python Poetry
Learn how Python Poetry will help you start new projects, maintain existing ones, and master dependency management.
Read more >
poethepoet - PyPI
A task runner that works well with poetry. Features. ✓ Straight forward declaration of project tasks in your pyproject.toml (kind of like npm...
Read more >
Python Poetry: Package and venv Management Made Easy
Learn how to install and use the Python Poetry package manager to manage the dependencies and virtual environment(s) of your Python project.
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