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.

[EnvCommandError] when installing package from URL

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).

  • OS version and name: Windows 10

  • Poetry version: 1.0.0b1

pyproject.toml

[tool.poetry]
name = "fact-extract"
version = "0.0.0"
description = "description"
authors = ["Dylan <email@example.com>"]

[tool.poetry.dependencies]
python = "^3.7"
click = "^7.0"
scrapy = "^1.7"
textacy = "^0.8.0"

[tool.poetry.dev-dependencies]
pytest = "^3.0"
black = {version = "^19.3-beta.0", allows-prereleases = true}

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

Issue

Using the poetry add command doesn’t appear to work with URLs all the time. In particular, installing a spaCy (nlp library) model from a GitHub release (this is their recommended way to do it for production usage). Totally guessing but the issue may be because the package doesn’t exist on PyPI, or maybe doesn’t report its version correctly.

Here is the command and output:

C:\projects\fts\fact-extract>poetry add https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.1.0/en_core_web_sm-2.1.0.tar.gz#egg=en_core_web_sm

Updating dependencies
Resolving dependencies...


Package operations: 4 installs, 0 updates, 0 removals

  - Installing en_core_web_sm (2.1.0 https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.1.0/en_core_web_sm-2.1.0.tar.gz#egg=en_core_web_sm)

[EnvCommandError]
Command ['C:\\Users\\Dylan\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\fact-extract-LQupvckr-py3.7\\Scripts\\python.exe', '-m', 'pip', 'install', '--no-deps', 'en-core-web-sm==2.1.0'] errored with the following return code 1, and output:
Collecting en-core-web-sm==2.1.0
  Could not find a version that satisfies the requirement en-core-web-sm==2.1.0 (from versions: )
No matching distribution found for en-core-web-sm==2.1.0
You are using pip version 19.0.3, however version 19.2.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

@marctorrellas reported this same problem over here: https://github.com/sdispater/poetry/pull/1260#issuecomment-520134013

Verbose Terminal Output

C:\projects\fts\fact-extract>poetry add https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.1.0/en_core_web_sm-2.1.0.tar.gz#egg=en_core_web_sm -vvv
Using virtualenv: C:\Users\Dylan\AppData\Local\pypoetry\Cache\virtualenvs\fact-extract-LQupvckr-py3.7

Updating dependencies
Resolving dependencies...
   1: fact: fact-extract is 0.0.0
   1: derived: fact-extract
   1: fact: fact-extract depends on click (^7.0)
   1: fact: fact-extract depends on scrapy (^1.7)
   1: fact: fact-extract depends on textacy (^0.8.0)
   1: fact: fact-extract depends on en-core-web-sm (*)
   1: fact: fact-extract depends on pytest (^3.0)
   1: fact: fact-extract depends on black (^19.3-beta.0)
   1: selecting fact-extract (0.0.0)
   1: derived: black (^19.3-beta.0)
   1: derived: pytest (^3.0)
   1: derived: en-core-web-sm (*)
   1: derived: textacy (^0.8.0)
   1: derived: scrapy (^1.7)
   1: derived: click (^7.0)
   1: fact: black (19.3b0) depends on click (>=6.5)
   1: fact: black (19.3b0) depends on attrs (>=18.1.0)
   1: fact: black (19.3b0) depends on appdirs (*)
   1: fact: black (19.3b0) depends on toml (>=0.9.4)
   1: selecting black (19.3b0)
   1: derived: toml (>=0.9.4)
   1: derived: appdirs (*)
   1: derived: attrs (>=18.1.0)
   1: fact: pytest (3.10.1) depends on py (>=1.5.0)
   1: fact: pytest (3.10.1) depends on six (>=1.10.0)
   1: fact: pytest (3.10.1) depends on attrs (>=17.4.0)
   1: fact: pytest (3.10.1) depends on more-itertools (>=4.0.0)
   1: fact: pytest (3.10.1) depends on atomicwrites (>=1.0)
   1: fact: pytest (3.10.1) depends on pluggy (>=0.7)
   1: fact: pytest (3.10.1) depends on colorama (*)
   1: selecting pytest (3.10.1)
   1: derived: colorama (*)
   1: derived: pluggy (>=0.7)
   1: derived: atomicwrites (>=1.0)
   1: derived: more-itertools (>=4.0.0)
   1: derived: six (>=1.10.0)
   1: derived: py (>=1.5.0)
   1: fact: en-core-web-sm (2.1.0) depends on spacy (>=2.1.0)
   1: selecting en-core-web-sm (2.1.0 https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.1.0/en_core_web_sm-2.1.0.tar.gz#egg=en_core_web_sm)
   1: derived: spacy (>=2.1.0)
   1: fact: textacy (0.8.0) depends on cachetools (>=2.0.0)
   1: fact: textacy (0.8.0) depends on cytoolz (>=0.8.0)
   1: fact: textacy (0.8.0) depends on jellyfish (>=0.6.0,<0.7.0)
   1: fact: textacy (0.8.0) depends on joblib (>=0.13.0)
   1: fact: textacy (0.8.0) depends on networkx (>=1.11)
   1: fact: textacy (0.8.0) depends on numpy (>=1.9.0,<2.0.0)
   1: fact: textacy (0.8.0) depends on pyemd (>=0.3.0)
   1: fact: textacy (0.8.0) depends on pyphen (>=0.9.4)
   1: fact: textacy (0.8.0) depends on requests (>=2.10.0)
   1: fact: textacy (0.8.0) depends on scipy (>=0.17.0)
   1: fact: textacy (0.8.0) depends on scikit-learn (>=0.18.0,<0.21.0)
   1: fact: textacy (0.8.0) depends on spacy (>=2.0.12)
   1: fact: textacy (0.8.0) depends on srsly (>=0.0.5)
   1: fact: textacy (0.8.0) depends on tqdm (>=4.11.1)
   1: selecting textacy (0.8.0)
   1: derived: tqdm (>=4.11.1)
   1: derived: srsly (>=0.0.5)
   1: derived: scikit-learn (>=0.18.0,<0.21.0)
   1: derived: scipy (>=0.17.0)
   1: derived: requests (>=2.10.0)
   1: derived: pyphen (>=0.9.4)
   1: derived: pyemd (>=0.3.0)
   1: derived: numpy (>=1.9.0,<2.0.0)
   1: derived: networkx (>=1.11)
   1: derived: joblib (>=0.13.0)
   1: derived: jellyfish (>=0.6.0,<0.7.0)
   1: derived: cytoolz (>=0.8.0)
   1: derived: cachetools (>=2.0.0)
   1: fact: scrapy (1.7.2) depends on w3lib (>=1.17.0)
   1: fact: scrapy (1.7.2) depends on queuelib (*)
   1: fact: scrapy (1.7.2) depends on lxml (*)
   1: fact: scrapy (1.7.2) depends on pyOpenSSL (*)
   1: fact: scrapy (1.7.2) depends on cssselect (>=0.9)
   1: fact: scrapy (1.7.2) depends on six (>=1.5.2)
   1: fact: scrapy (1.7.2) depends on parsel (>=1.5)
   1: fact: scrapy (1.7.2) depends on PyDispatcher (>=2.0.5)
   1: fact: scrapy (1.7.2) depends on service-identity (*)
   1: fact: scrapy (1.7.2) depends on PyPyDispatcher (>=2.1.0)
   1: fact: scrapy (1.7.2) depends on Twisted (>=13.1.0)
   1: selecting scrapy (1.7.2)
   1: derived: Twisted (>=13.1.0)
   1: derived: PyPyDispatcher (>=2.1.0)
   1: derived: service-identity (*)
   1: derived: PyDispatcher (>=2.0.5)
   1: derived: parsel (>=1.5)
   1: derived: cssselect (>=0.9)
   1: derived: pyOpenSSL (*)
   1: derived: lxml (*)
   1: derived: queuelib (*)
   1: derived: w3lib (>=1.17.0)
   1: selecting click (7.0)
   1: selecting toml (0.10.0)
   1: selecting appdirs (1.4.3)
   1: selecting attrs (19.1.0)
   1: selecting colorama (0.4.1)
   1: fact: pluggy (0.12.0) depends on importlib-metadata (>=0.12)
   1: selecting pluggy (0.12.0)
   1: derived: importlib-metadata (>=0.12)
   1: selecting atomicwrites (1.3.0)
   1: selecting more-itertools (7.2.0)
   1: selecting six (1.12.0)
   1: selecting py (1.8.0)
   1: fact: spacy (2.1.6) depends on numpy (>=1.15.0)
   1: fact: spacy (2.1.6) depends on murmurhash (>=0.28.0,<1.1.0)
   1: fact: spacy (2.1.6) depends on cymem (>=2.0.2,<2.1.0)
   1: fact: spacy (2.1.6) depends on preshed (>=2.0.1,<2.1.0)
   1: fact: spacy (2.1.6) depends on thinc (>=7.0.8,<7.1.0)
   1: fact: spacy (2.1.6) depends on blis (>=0.2.2,<0.3.0)
   1: fact: spacy (2.1.6) depends on plac (>=0.9.6,<1.0.0)
   1: fact: spacy (2.1.6) depends on requests (>=2.13.0,<3.0.0)
   1: fact: spacy (2.1.6) depends on wasabi (>=0.2.0,<1.1.0)
   1: fact: spacy (2.1.6) depends on srsly (>=0.0.6,<1.1.0)
   1: selecting spacy (2.1.6)
   1: derived: srsly (>=0.0.6,<1.1.0)
   1: derived: wasabi (>=0.2.0,<1.1.0)
   1: derived: requests (>=2.13.0,<3.0.0)
   1: derived: plac (>=0.9.6,<1.0.0)
   1: derived: blis (>=0.2.2,<0.3.0)
   1: derived: thinc (>=7.0.8,<7.1.0)
   1: derived: preshed (>=2.0.1,<2.1.0)
   1: derived: cymem (>=2.0.2,<2.1.0)
   1: derived: murmurhash (>=0.28.0,<1.1.0)
   1: derived: numpy (>=1.15.0)
   1: selecting tqdm (4.32.2)
   1: selecting srsly (0.0.7)
   1: fact: scikit-learn (0.20.3) depends on numpy (>=1.8.2)
   1: fact: scikit-learn (0.20.3) depends on scipy (>=0.13.3)
   1: selecting scikit-learn (0.20.3)
   1: fact: scipy (1.3.0) depends on numpy (>=1.13.3)
   1: selecting scipy (1.3.0)
   1: fact: requests (2.22.0) depends on chardet (>=3.0.2,<3.1.0)
   1: fact: requests (2.22.0) depends on idna (>=2.5,<2.9)
   1: fact: requests (2.22.0) depends on urllib3 (>=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26)
   1: fact: requests (2.22.0) depends on certifi (>=2017.4.17)
   1: selecting requests (2.22.0)
   1: derived: certifi (>=2017.4.17)
   1: derived: urllib3 (>=1.21.1,<1.25.0 || >1.25.0,<1.25.1 || >1.25.1,<1.26)
   1: derived: idna (>=2.5,<2.9)
   1: derived: chardet (>=3.0.2,<3.1.0)
   1: selecting pyphen (0.9.5)
   1: fact: pyemd (0.5.1) depends on numpy (>=1.9.0,<2.0.0)
   1: selecting pyemd (0.5.1)
   1: selecting numpy (1.16.4)
   1: fact: networkx (2.3) depends on decorator (>=4.3.0)
   1: selecting networkx (2.3)
   1: derived: decorator (>=4.3.0)
   1: selecting joblib (0.13.2)
   1: selecting jellyfish (0.6.1)
   1: fact: cytoolz (0.10.0) depends on toolz (>=0.8.0)
   1: selecting cytoolz (0.10.0)
   1: derived: toolz (>=0.8.0)
   1: selecting cachetools (3.1.1)
   1: fact: twisted (19.2.1) depends on zope.interface (>=4.4.2)
   1: fact: twisted (19.2.1) depends on constantly (>=15.1)
   1: fact: twisted (19.2.1) depends on incremental (>=16.10.1)
   1: fact: twisted (19.2.1) depends on Automat (>=0.3.0)
   1: fact: twisted (19.2.1) depends on hyperlink (>=17.1.1)
   1: fact: twisted (19.2.1) depends on PyHamcrest (>=1.9.0)
   1: fact: twisted (19.2.1) depends on attrs (>=17.4.0)
   1: selecting twisted (19.2.1)
   1: derived: PyHamcrest (>=1.9.0)
   1: derived: hyperlink (>=17.1.1)
   1: derived: Automat (>=0.3.0)
   1: derived: incremental (>=16.10.1)
   1: derived: constantly (>=15.1)
   1: derived: zope.interface (>=4.4.2)
   1: selecting pypydispatcher (2.1.2)
   1: fact: service-identity (18.1.0) depends on attrs (>=16.0.0)
   1: fact: service-identity (18.1.0) depends on pyasn1-modules (*)
   1: fact: service-identity (18.1.0) depends on pyasn1 (*)
   1: fact: service-identity (18.1.0) depends on cryptography (*)
   1: selecting service-identity (18.1.0)
   1: derived: cryptography (*)
   1: derived: pyasn1 (*)
   1: derived: pyasn1-modules (*)
   1: selecting pydispatcher (2.0.5)
   1: fact: parsel (1.5.1) depends on w3lib (>=1.19.0)
   1: fact: parsel (1.5.1) depends on lxml (>=2.3)
   1: fact: parsel (1.5.1) depends on six (>=1.5.2)
   1: fact: parsel (1.5.1) depends on cssselect (>=0.9)
   1: selecting parsel (1.5.1)
   1: derived: lxml (>=2.3)
   1: derived: w3lib (>=1.19.0)
   1: selecting cssselect (1.0.3)
   1: fact: pyopenssl (19.0.0) depends on cryptography (>=2.3)
   1: fact: pyopenssl (19.0.0) depends on six (>=1.5.2)
   1: selecting pyopenssl (19.0.0)
   1: derived: cryptography (>=2.3)
   1: selecting lxml (4.3.4)
   1: selecting queuelib (1.5.0)
   1: fact: w3lib (1.20.0) depends on six (>=1.4.1)
   1: selecting w3lib (1.20.0)
PyPI: Invalid constraint (pathlib2 ; python_version == "3.4.*" or python_version < "3") found in importlib-metadata-0.18 dependencies, skipping
   1: fact: importlib-metadata (0.18) depends on zipp (>=0.5)
   1: selecting importlib-metadata (0.18)
   1: derived: zipp (>=0.5)
   1: selecting wasabi (0.2.2)
   1: selecting plac (0.9.6)
   1: fact: blis (0.2.4) depends on numpy (>=1.15.0)
   1: selecting blis (0.2.4)
   1: fact: thinc (7.0.8) depends on murmurhash (>=0.28.0,<1.1.0)
   1: fact: thinc (7.0.8) depends on cymem (>=2.0.2,<2.1.0)
   1: fact: thinc (7.0.8) depends on preshed (>=1.0.1,<2.1.0)
   1: fact: thinc (7.0.8) depends on blis (>=0.2.1,<0.3.0)
   1: fact: thinc (7.0.8) depends on wasabi (>=0.0.9,<1.1.0)
   1: fact: thinc (7.0.8) depends on srsly (>=0.0.6,<1.1.0)
   1: fact: thinc (7.0.8) depends on numpy (>=1.7.0)
   1: fact: thinc (7.0.8) depends on plac (>=0.9.6,<1.0.0)
   1: fact: thinc (7.0.8) depends on tqdm (>=4.10.0,<5.0.0)
   1: selecting thinc (7.0.8)
   1: fact: preshed (2.0.1) depends on cymem (>=2.0.2,<2.1.0)
   1: selecting preshed (2.0.1)
   1: selecting cymem (2.0.2)
   1: selecting murmurhash (1.0.2)
   1: selecting certifi (2019.6.16)
   1: selecting urllib3 (1.25.3)
   1: selecting idna (2.8)
   1: selecting chardet (3.0.4)
   1: selecting decorator (4.4.0)
   1: selecting toolz (0.10.0)
   1: fact: pyhamcrest (1.9.0) depends on six (*)
   1: selecting pyhamcrest (1.9.0)
   1: fact: hyperlink (19.0.0) depends on idna (>=2.5)
   1: selecting hyperlink (19.0.0)
   1: fact: automat (0.7.0) depends on attrs (>=16.1.0)
   1: fact: automat (0.7.0) depends on six (*)
   1: selecting automat (0.7.0)
   1: selecting incremental (17.5.0)
   1: selecting constantly (15.1.0)
   1: selecting zope.interface (4.6.0)
   1: fact: cryptography (2.7) depends on asn1crypto (>=0.21.0)
   1: fact: cryptography (2.7) depends on six (>=1.4.1)
   1: fact: cryptography (2.7) depends on cffi (>=1.8,<1.11.3 || >1.11.3)
   1: selecting cryptography (2.7)
   1: derived: cffi (>=1.8,<1.11.3 || >1.11.3)
   1: derived: asn1crypto (>=0.21.0)
   1: selecting pyasn1 (0.4.5)
   1: fact: pyasn1-modules (0.2.5) depends on pyasn1 (>=0.4.1,<0.5.0)
   1: selecting pyasn1-modules (0.2.5)
   1: selecting zipp (0.5.2)
   1: fact: cffi (1.12.3) depends on pycparser (*)
   1: selecting cffi (1.12.3)
   1: derived: pycparser (*)
   1: selecting asn1crypto (0.24.0)
   1: selecting pycparser (2.19)
   1: Version solving took 2.410 seconds.
   1: Tried 1 solutions.

Writing lock file


Package operations: 4 installs, 0 updates, 0 removals

  - Installing en_core_web_sm (2.1.0 https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.1.0/en_core_web_sm-2.1.0.tar.gz#egg=en_core_web_sm)

[EnvCommandError]
Command ['C:\\Users\\Dylan\\AppData\\Local\\pypoetry\\Cache\\virtualenvs\\fact-extract-LQupvckr-py3.7\\Scripts\\python.exe', '-m', 'pip', 'install', '--no-deps', 'en-core-web-sm==2.1.0'] errored with the following return code 1, and output:
Collecting en-core-web-sm==2.1.0
  Could not find a version that satisfies the requirement en-core-web-sm==2.1.0 (from versions: )
No matching distribution found for en-core-web-sm==2.1.0
You are using pip version 19.0.3, however version 19.2.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.


Traceback (most recent call last):
  File "C:\Users\Dylan\.poetry\lib\poetry\_vendor\py3.7\clikit\console_application.py", line 132, in run
    status_code = command.handle(parsed_args, io)
  File "C:\Users\Dylan\.poetry\lib\poetry\_vendor\py3.7\clikit\api\command\command.py", line 119, in handle
    status_code = self._do_handle(args, io)
  File "C:\Users\Dylan\.poetry\lib\poetry\_vendor\py3.7\clikit\api\command\command.py", line 167, in _do_handle
    return getattr(handler, handler_method)(args, io, self)
  File "C:\Users\Dylan\.poetry\lib\poetry\_vendor\py3.7\cleo\commands\command.py", line 92, in wrap_handle
    return self.handle()
  File "C:\Users\Dylan\.poetry\lib\poetry\console\commands\add.py", line 149, in handle
    status = installer.run()
  File "C:\Users\Dylan\.poetry\lib\poetry\installation\installer.py", line 74, in run
    self._do_install(local_repo)
  File "C:\Users\Dylan\.poetry\lib\poetry\installation\installer.py", line 286, in _do_install
    self._execute(op)
  File "C:\Users\Dylan\.poetry\lib\poetry\installation\installer.py", line 302, in _execute
    getattr(self, '_execute_{}'.format(method))(operation)
  File "C:\Users\Dylan\.poetry\lib\poetry\installation\installer.py", line 327, in _execute_install
    self._installer.install(operation.package)
  File "C:\Users\Dylan\.poetry\lib\poetry\installation\pip_installer.py", line 88, in install
    self.run(*args)
  File "C:\Users\Dylan\.poetry\lib\poetry\installation\pip_installer.py", line 109, in run
    return self._env.run('python', '-m', 'pip', *args, **kwargs)
  File "C:\Users\Dylan\.poetry\lib\poetry\utils\env.py", line 875, in run
    return super(VirtualEnv, self).run(bin, *args, **kwargs)
  File "C:\Users\Dylan\.poetry\lib\poetry\utils\env.py", line 708, in run
    raise EnvCommandError(e, input=input_)

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Reactions:1
  • Comments:13 (1 by maintainers)

github_iconTop GitHub Comments

19reactions
sixhobbitscommented, Jun 22, 2020

If you’re here like me trying to get Poetry to install spaCy along with the model, this is the full pyproject.toml file I used

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

[tool]
[tool.poetry]
authors = ["Your Name <you@example.com>"]
description = ""
name = "spacy-install"
version = "0.1.0"
[tool.poetry.dependencies]
python = "^3.8"
spacy = "^2.2"
[tool.poetry.dependencies.en_core_web_md]
url = "https://github.com/explosion/spacy-models/releases/download/en_core_web_md-2.3.0/en_core_web_md-2.3.0.tar.gz"
[tool.poetry.dev-dependencies]
5reactions
marctorsoccommented, Jan 15, 2020

this worked for me @sam-qordoba

en_core_web_lg = { 
     url = "https://github.com/explosion/spacy-models/releases/download/en_core_web_lg-2.1.0/en_core_web_lg-2.1.0.tar.gz"
}
Read more comments on GitHub >

github_iconTop Results From Across the Web

Python Poetry [EnvCommandError] when adding a package
Python Poetry [EnvCommandError] when adding a package ... 1) I installed poetry correctly (using curl which is provided in their website).
Read more >
Installing from a Git URL - Unity - Manual
Installing from a Git URL · Open the add menu in the Package Manager's toolbar. · The options for adding packages appear.
Read more >
EnvCommandError - cannot get django tutorial to deploy
I've tried to get a test deploy of the django tutorial deployed but cannot get it to work. I created an environment variable...
Read more >
The error states that your pac... - Replit
The error states that your packages replit can't support because they are too big. ... A git url (git+https://github.com/python-poetry/poetry.git).
Read more >
Configure a Poetry environment | PyCharm Documentation
... file that specifies required packages, scripts, plugins, and URLs. ... To use Poetry in PyCharm, you need to install it on your...
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