2.2.0 can't be installed with poetry on windows
jmwielandt opened this issue · comments
José commented
Hi. I'm trying to install nats-py with poetry, but it fails. nats-py 2.1.7 works fine.
C:\dev> poetry new test
Created package test in test
C:\dev> cd test
C:\dev\test> poetry add nats-py
Creating virtualenv test-OzAo6IVU-py3.10 in C:\Users\REDACTED\AppData\Local\pypoetry\Cache\virtualenvs
Using version ^2.2.0 for nats-py
Updating dependencies
Resolving dependencies...
file could not be opened successfully:
- method gz: ReadError('not a gzip file')
- method bz2: ReadError('not a bzip2 file')
- method xz: ReadError('not an lzma file')
- method tar: ReadError('invalid header')
C:\dev\test> cat .\pyproject.toml
[tool.poetry]
name = "test"
version = "0.1.0"
description = ""
authors = ["REDACTED"]
readme = "README.md"
[tool.poetry.dependencies]
python = "^3.10"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
C:\dev\test> poetry add nats-py=2.1.7
Updating dependencies
Resolving dependencies...
Package operations: 1 install, 0 updates, 0 removals
• Installing nats-py (2.1.7)
Writing lock file
C:\dev\test> poetry --version
Poetry (version 1.5.0)
C:\dev\test> python --version
Python 3.10.11
Full logs (-vvv):
click me to open it
C:\dev\test> poetry remove nats-py
Updating dependencies
Resolving dependencies...
Package operations: 0 installs, 0 updates, 1 removal
• Removing nats-py (2.1.7)
Writing lock file
C:\dev\test> poetry add nats-py -vvv
Loading configuration file C:\Users\REDACTED\AppData\Roaming\pypoetry\config.toml
Using virtualenv: C:\Users\REDACTED\AppData\Local\pypoetry\Cache\virtualenvs\test-OzAo6IVU-py3.10
[keyring.backend] Loading KWallet
[keyring.backend] Loading SecretService
[keyring.backend] Loading Windows
[keyring.backend] Loading chainer
[keyring.backend] Loading libsecret
[keyring.backend] Loading macOS
Creating new session for pypi.org
[urllib3.connectionpool] Starting new HTTPS connection (1): pypi.org:443
[urllib3.connectionpool] https://pypi.org:443 "GET /simple/nats-py/ HTTP/1.1" 304 0
[filelock] Attempting to acquire lock 2988372802864 on C:\Users\REDACTED\AppData\Local\pypoetry\Cache\cache\repositories\PyPI\_http\9\5\7\1\6\957163279c44468252365a0a29f581856602ad706425c3d2b7239449.lock
[filelock] Lock 2988372802864 acquired on C:\Users\REDACTED\AppData\Local\pypoetry\Cache\cache\repositories\PyPI\_http\9\5\7\1\6\957163279c44468252365a0a29f581856602ad706425c3d2b7239449.lock
[filelock] Attempting to release lock 2988372802864 on C:\Users\REDACTED\AppData\Local\pypoetry\Cache\cache\repositories\PyPI\_http\9\5\7\1\6\957163279c44468252365a0a29f581856602ad706425c3d2b7239449.lock
[filelock] Lock 2988372802864 released on C:\Users\REDACTED\AppData\Local\pypoetry\Cache\cache\repositories\PyPI\_http\9\5\7\1\6\957163279c44468252365a0a29f581856602ad706425c3d2b7239449.lock
Source (PyPI): 9 packages found for nats-py *
Using version ^2.2.0 for nats-py
Updating dependencies
Resolving dependencies...
1: fact: test is 0.1.0
1: derived: test
1: fact: test depends on nats-py (^2.2.0)
1: selecting test (0.1.0)
1: derived: nats-py (>=2.2.0,<3.0.0)
Source (PyPI): 1 packages found for nats-py >=2.2.0,<3.0.0
Source (PyPI): The cache for nats-py 2.2.0 is outdated. Refreshing.
Source (PyPI): Getting info for nats-py (2.2.0) from PyPI
Source (PyPI): No dependencies found, downloading archives
1: Version solving took 0.019 seconds.
1: Tried 1 solutions.
Stack trace:
24 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\cleo\application.py:327 in run
325│
326│ try:
→ 327│ exit_code = self._run(io)
328│ except BrokenPipeError:
329│ # If we are piped to another process, it may close early and send a
23 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\console\application.py:190 in _run
188│ self._load_plugins(io)
189│
→ 190│ exit_code: int = super()._run(io)
191│ return exit_code
192│
22 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\cleo\application.py:431 in _run
429│ io.input.interactive(interactive)
430│
→ 431│ exit_code = self._run_command(command, io)
432│ self._running_command = None
433│
21 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\cleo\application.py:473 in _run_command
471│
472│ if error is not None:
→ 473│ raise error
474│
475│ return terminate_event.exit_code
20 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\cleo\application.py:457 in _run_command
455│
456│ if command_event.command_should_run():
→ 457│ exit_code = command.run(io)
458│ else:
459│ exit_code = ConsoleCommandEvent.RETURN_CODE_DISABLED
19 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\cleo\commands\base_command.py:119 in run
117│ io.input.validate()
118│
→ 119│ status_code = self.execute(io)
120│
121│ if status_code is None:
18 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\cleo\commands\command.py:62 in execute
60│
61│ try:
→ 62│ return self.handle()
63│ except KeyboardInterrupt:
64│ return 1
17 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\console\commands\add.py:271 in handle
269│ self.installer.whitelist([r["name"] for r in requirements])
270│
→ 271│ status = self.installer.run()
272│
273│ if status == 0 and not self.option("dry-run"):
16 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\installation\installer.py:104 in run
102│ self.verbose(True)
103│
→ 104│ return self._do_install()
105│
106│ def dry_run(self, dry_run: bool = True) -> Installer:
15 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\installation\installer.py:241 in _do_install
239│ source_root=self._env.path.joinpath("src")
240│ ):
→ 241│ ops = solver.solve(use_latest=self._whitelist).calculate_operations()
242│ else:
243│ self._io.write_line("Installing dependencies from lock file")
14 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\puzzle\solver.py:72 in solve
70│ with self._progress(), self._provider.use_latest_for(use_latest or []):
71│ start = time.time()
→ 72│ packages, depths = self._solve()
73│ end = time.time()
74│
13 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\puzzle\solver.py:155 in _solve
153│
154│ try:
→ 155│ result = resolve_version(self._package, self._provider)
156│
157│ packages = result.packages
12 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\mixology\__init__.py:18 in resolve_version
16│ solver = VersionSolver(root, provider)
17│
→ 18│ return solver.solve()
19│
11 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\mixology\version_solver.py:112 in solve
110│ while next is not None:
111│ self._propagate(next)
→ 112│ next = self._choose_package_version()
113│
114│ return self._result()
10 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\mixology\version_solver.py:430 in _choose_package_version
428│ package = locked
429│
→ 430│ package = self._provider.complete_package(package)
431│
432│ conflict = False
9 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\puzzle\provider.py:482 in complete_package
480│ dependency_package = DependencyPackage(
481│ dependency,
→ 482│ self._pool.package(
483│ package.pretty_name,
484│ package.version,
8 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\repositories\repository_pool.py:178 in package
176│ for repo in self.repositories:
177│ try:
→ 178│ return repo.package(name, version, extras=extras)
179│ except PackageNotFound:
180│ continue
7 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\repositories\cached_repository.py:76 in package
74│ extras: list[str] | None = None,
75│ ) -> Package:
→ 76│ return self.get_release_info(canonicalize_name(name), version).to_package(
77│ name=name, extras=extras
78│ )
6 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\repositories\cached_repository.py:64 in get_release_info
62│ level="debug",
63│ )
→ 64│ cached = self._get_release_info(name, version)
65│
66│ self._release_cache.put(f"{name}:{version}", cached)
5 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\repositories\pypi_repository.py:205 in _get_release_info
203│ return data.asdict()
204│
→ 205│ info = self._get_info_from_urls(urls)
206│
207│ data.requires_dist = info.requires_dist
4 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\repositories\http_repository.py:205 in _get_info_from_urls
203│ return self._get_info_from_wheel(first_wheel)
204│
→ 205│ return self._get_info_from_sdist(urls["sdist"][0])
206│
207│ def _links_to_data(self, links: list[Link], data: PackageInfo) -> dict[str, Any]:
3 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\repositories\http_repository.py:99 in _get_info_from_sdist
97│
98│ with self._cached_or_downloaded_file(Link(url)) as filepath:
→ 99│ return PackageInfo.from_sdist(filepath)
100│
101│ def _get_info_from_urls(self, urls: dict[str, list[str]]) -> PackageInfo:
2 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\inspection\info.py:519 in from_sdist
517│ """
518│ if path.is_file():
→ 519│ return cls._from_sdist_file(path=path)
520│
521│ # if we get here then it is neither an sdist instance nor a file
1 ~\AppData\Local\Programs\Python\Python310\lib\site-packages\poetry\inspection\info.py:313 in _from_sdist_file
311│ with temporary_directory() as tmp_str:
312│ tmp = Path(tmp_str)
→ 313│ with context(path.as_posix()) as archive:
314│ archive.extractall(tmp.as_posix())
315│
ReadError
file could not be opened successfully:
- method gz: ReadError('not a gzip file')
- method bz2: ReadError('not a bzip2 file')
- method xz: ReadError('not an lzma file')
- method tar: ReadError('invalid header')
at ~\AppData\Local\Programs\Python\Python310\lib\tarfile.py:1639 in open
1635│ if fileobj is not None:
1636│ fileobj.seek(saved_pos)
1637│ continue
1638│ error_msgs_summary = '\n'.join(error_msgs)
→ 1639│ raise ReadError(f"file could not be opened successfully:\n{error_msgs_summary}")
1640│
1641│ elif ":" in mode:
1642│ filemode, comptype = mode.split(":", 1)
1643│ filemode = filemode or "r"
pip install nats-py works fine with 2.2.0 tho. Update: downgrading poetry to 1.4.0 the installation works fine.
José commented
fake alarm: clearing cache poetry cache clear --all pypi
solved the issue. Sorry!
Waldemar Quevedo commented
thanks for the update :)