# corruzione: pyparsing>=2.0.2 distribution not found [R]

## cloc3

in seguito a una corruzione che non sono capace di ricostruire, ricevo un messaggio di errore durante qualunque compilazione di pacchetti python.

per peggiorare le cose, considerando che il pacchetto incriminato è pyparsing, ho provato a farne un binario e a disinstallarlo...

metto qui un output di terminale.

aggiungere l'opzione -B non cambia le cose.

tra l'altro ho inserito manualmente i pacchetti del binario in /usr/lib/python3-9/site-packages senza utilità.

cosa si può fare?

----------

## sabayonino

ciao 

dal log

```
pkg_resources.DistributionNotFound: The 'pyparsing>=2.0.2' distribution was not found and is required by packaging

 * ERROR: dev-python/pyparsing-3.0.6::gentoo failed (compile phase):
```

E da conflitto di compilazione:

```
  (dev-python/pyparsing-3.0.6:0/0::gentoo, ebuild scheduled for merge) USE="-examples -test" PYTHON_TARGETS="python3_9 (-pypy3) (-python3_10) -python3_8" conflicts with

    <dev-python/pyparsing-3[python_targets_python3_9(-)] required by (dev-python/packaging-21.0:0/0::gentoo, installed) USE="-test" PYTHON_TARGETS="python3_9 (-pypy3) (-python3_10) -python3_8
```

Le versioni inferirori di pyparsing-3 sono richieste per il pacchetto dev-python/packaging-21

Devi necessariamente installare una versione successiva del pacchetto packaging

Workaround ---> ~21.3-r1

accept_keywords per 

```
=dev-python/packaging-21.3-r1 ~amd64
```

```
# emerge -u1 =dev-python/packaging-21.3-r1 --ask
```

```
Thu Dec 23 21:45:01 2021 >>> dev-python/pyparsing-3.0.6

Thu Dec 23 21:45:19 2021 >>> dev-python/packaging-21.3-r1
```

PS : tu avrai Python 3.8 come target , eventualmente controlla che il python da te utilizzato punti alla versione giusta ma questo non dovrebbe inficiare la compilazione.

----------

## cloc3

 *sabayonino wrote:*   

> 
> 
> Workaround ---> ~21.3-r1
> 
> accept_keywords per 
> ...

 

grazie, ma purtroppo non funziona.

non riesco neppure a installare la versione precedente.

la use flag unstable probabilmente non è più necessaria, perché dopo l'ultimo sync entrambe le versioni sono stable.

nel mio sistema è presente sia la 3.8 che la 3.9 di python.

ho provato a invertire l'ordine delle precedenze con eselect ma non ho osservato cambiamenti.

ho dato un occhio al setup.py del pacchetto.

contiene una riga

```
from pyparsing import __version__ as pyparsing_version
```

che probabilmente genera un circolo vizioso, perché il modulo pyparsing non viene trovato.

----------

## fedeliallalinea

E che problema ti da con dev-python/packaging-21.3-r1? Puoi postare il build.log?

----------

## cloc3

 *fedeliallalinea wrote:*   

> E che problema ti da con dev-python/packaging-21.3-r1? Puoi postare il build.log?

 

adesso il link precedente contiene il build.log originale del comando emerge -u1 =dev-python/pyparsing-2.4.7-r1.

in realtà non mi sembra molto diverso dall'output di terminale.

grazie.

----------

## fedeliallalinea

Puoi postare l'output del comando emerge -pv dev-python/pyparsing?

----------

## cloc3

```

cloc3 ~ # emerge -pv dev-python/pyparsing

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild  N     ] dev-python/pyparsing-3.0.6::gentoo  USE="-examples -test" PYTHON_TARGETS="python3_8 python3_9 (-pypy3) (-python3_10)" 0 KiB

Total: 1 package (1 new), Size of downloads: 0 KiB

```

----------

## sabayonino

Stai continuando a compilare la 2.4.7 quando dovrebbe essere la 3.0.6 richiesta appunto da packaging-21.3-r1

----------

## fedeliallalinea

 *sabayonino wrote:*   

> Stai continuando a compilare la 2.4.7 quando dovrebbe essere la 3.0.6 richiesta appunto da packaging-21.3-r1

 

Ma teoricamente la 2.4.7 compila con packaging-21.0, secondo me è che manca il supporto a python3_8 (che poi dovrebbe essere disabilitato visto che la versione stabile è python3_9).

----------

## sabayonino

Su una machcina Gentoo ho quetsa situazione

```
[U] dev-python/pyparsing (2.4.7-r1{tbz2}@13/06/2021 -> 3.0.6^t): Easy-to-use Python module for text parsing
```

```
emerge -u1 dev-python/pyparsing -pv

WARNING: One or more updates/rebuilds have been skipped due to a dependency conflict:

dev-python/pyparsing:0

  (dev-python/pyparsing-3.0.6:0/0::gentoo, ebuild scheduled for merge) USE="-examples -test" ABI_X86="(64)" PYTHON_TARGETS="python3_9 (-pypy3) (-python3_10) -python3_8" conflicts with

    <dev-python/pyparsing-3[python_targets_python3_9(-)] required by (dev-python/packaging-21.0:0/0::gentoo, installed) USE="-test" ABI_X86="(64)" PYTHON_TARGETS="python3_9 (-pypy3) (-python3_10) -python3_8"

```

Premetto che la mia situazione è di Python 3.9

```
[I] dev-python/packaging

     Available versions:  21.0^t{tbz2} ~21.3-r1^t {test PYTHON_TARGETS="pypy3 python3_8 python3_9 python3_10"}

     Installed versions:  21.0^t{tbz2}(17:01:48 10/08/2021)(-test PYTHON_TARGETS="python3_9 -pypy3 -python3_8 -python3_10")

     Homepage:            https://github.com/pypa/packaging/ https://pypi.org/project/packaging/

     Description:         Core utilities for Python packages

[U] dev-python/pyparsing

     Available versions:  2.4.7-r1{tbz2} 3.0.6^t {examples test PYTHON_TARGETS="pypy3 python3_8 python3_9 python3_10"}

     Installed versions:  2.4.7-r1{tbz2}(22:48:35 13/06/2021)(-examples PYTHON_TARGETS="python3_9 -pypy3 -python3_8 -python3_10")

     Homepage:            https://github.com/pyparsing/pyparsing https://pypi.org/project/pyparsing/

     Description:         Easy-to-use Python module for text parsing

```

Risolto con : /etc/portage/package.accept_keywords/packaging: =dev-python/packaging-21.3.r1~amd64

Aggiornando "packaging" si porta dietro la dipendenza "pyparsing" alla versione richiesta

```
emerge -u1 packaging -pv

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild     U  ] dev-python/pyparsing-3.0.6::gentoo [2.4.7-r1::gentoo] USE="-examples -test%" PYTHON_TARGETS="python3_9 (-pypy3) -python3_8 (-python3_10)" 921 KiB

[ebuild     U ~] dev-python/packaging-21.3-r1::gentoo [21.0::gentoo] USE="-test" PYTHON_TARGETS="python3_9 -pypy3 -python3_8 -python3_10" 79 KiB

```

PS ; Portage tree aggiornato ,  dev-python/packaging-21.3-r1è ancora "~amd64"

Questa sequenza l'ho replicata sulle altre macchine Gentoo senza problemi.

----------

## fedeliallalinea

Scusa mi sono dimenticato di chiedere anche lo stesso comando per dev-python/packaging (emerge -pv dev-python/packaging).

----------

## cloc3

```

cloc3 ~ # emerge -1 dev-python/packaging -a

These are the packages that would be merged, in order:

Calculating dependencies... done!

[ebuild  N     ] dev-python/pyparsing-3.0.6  USE="-examples -test" PYTHON_TARGETS="python3_8 python3_9 (-pypy3) (-python3_10)" 

[ebuild     U ~] dev-python/packaging-21.3-r1 [21.0]

Would you like to merge these packages? [Yes/No] 

>>> Verifying ebuild manifests

>>> Emerging (1 of 2) dev-python/pyparsing-3.0.6::gentoo

 * Fetching files in the background.

 * To view fetch progress, run in another terminal:

 * tail -f /var/log/emerge-fetch.log

 * pyparsing_3.0.6.tar.gz BLAKE2B SHA512 size ;-) ...                                                                                                                                                                                  [ ok ]

>>> Unpacking source...

>>> Unpacking pyparsing_3.0.6.tar.gz to /tmp/ramtmp/.lnv/portage/dev-python/pyparsing-3.0.6/work

>>> Source unpacked in /tmp/ramtmp/.lnv/portage/dev-python/pyparsing-3.0.6/work

>>> Preparing source in /tmp/ramtmp/.lnv/portage/dev-python/pyparsing-3.0.6/work/pyparsing-pyparsing_3.0.6 ...

>>> Source prepared.

>>> Configuring source in /tmp/ramtmp/.lnv/portage/dev-python/pyparsing-3.0.6/work/pyparsing-pyparsing_3.0.6 ...

>>> Source configured.

>>> Compiling source in /tmp/ramtmp/.lnv/portage/dev-python/pyparsing-3.0.6/work/pyparsing-pyparsing_3.0.6 ...

 * python3_8: running distutils-r1_run_phase distutils-r1_python_compile

python3.8 setup.py build -j 9

Traceback (most recent call last):

  File "setup.py", line 23, in <module>

    setup(  # Distribution meta-data

  File "/usr/lib/python3.8/site-packages/setuptools/__init__.py", line 153, in setup

    return distutils.core.setup(**attrs)

  File "/usr/lib/python3.8/distutils/core.py", line 108, in setup

    _setup_distribution = dist = klass(attrs)

  File "/usr/lib/python3.8/site-packages/setuptools/dist.py", line 455, in __init__

    _Distribution.__init__(self, {

  File "/usr/lib/python3.8/distutils/dist.py", line 292, in __init__

    self.finalize_options()

  File "/usr/lib/python3.8/site-packages/setuptools/dist.py", line 806, in finalize_options

    for ep in sorted(eps, key=by_order):

  File "/usr/lib/python3.8/site-packages/setuptools/dist.py", line 805, in <lambda>

    eps = map(lambda e: e.load(), pkg_resources.iter_entry_points(group))

  File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2449, in load

    self.require(*args, **kwargs)

  File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2472, in require

    items = working_set.resolve(reqs, env, installer, extras=self.extras)

  File "/usr/lib/python3.8/site-packages/pkg_resources/__init__.py", line 772, in resolve

    raise DistributionNotFound(req, requirers)

pkg_resources.DistributionNotFound: The 'pyparsing>=2.0.2' distribution was not found and is required by packaging

 * ERROR: dev-python/pyparsing-3.0.6::gentoo failed (compile phase):

 *   (no error message)

 * 

 * Call stack:

 *     ebuild.sh, line  127:  Called src_compile

 *   environment, line 2926:  Called distutils-r1_src_compile

 *   environment, line 1203:  Called _distutils-r1_run_foreach_impl 'distutils-r1_python_compile'

 *   environment, line  498:  Called python_foreach_impl 'distutils-r1_run_phase' 'distutils-r1_python_compile'

 *   environment, line 2597:  Called multibuild_foreach_variant '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'distutils-r1_python_compile'

 *   environment, line 2106:  Called _multibuild_run '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'distutils-r1_python_compile'

 *   environment, line 2104:  Called _python_multibuild_wrapper 'distutils-r1_run_phase' 'distutils-r1_python_compile'

 *   environment, line  809:  Called distutils-r1_run_phase 'distutils-r1_python_compile'

 *   environment, line 1194:  Called distutils-r1_python_compile

 *   environment, line 1053:  Called esetup.py 'build' '-j' '9'

 *   environment, line 1641:  Called die

 * The specific snippet of code:

 *       "${@}" || die -n;

 * 

 * If you need support, post the output of `emerge --info '=dev-python/pyparsing-3.0.6::gentoo'`,

 * the complete build log and the output of `emerge -pqv '=dev-python/pyparsing-3.0.6::gentoo'`.

 * The complete build log is located at '/tmp/ramtmp/.lnv/portage/dev-python/pyparsing-3.0.6/temp/build.log'.

 * The ebuild environment file is located at '/tmp/ramtmp/.lnv/portage/dev-python/pyparsing-3.0.6/temp/environment'.

 * Working directory: '/tmp/ramtmp/.lnv/portage/dev-python/pyparsing-3.0.6/work/pyparsing-pyparsing_3.0.6'

 * S: '/tmp/ramtmp/.lnv/portage/dev-python/pyparsing-3.0.6/work/pyparsing-pyparsing_3.0.6'

>>> Failed to emerge dev-python/pyparsing-3.0.6, Log file:

>>>  '/tmp/ramtmp/.lnv/portage/dev-python/pyparsing-3.0.6/temp/build.log'

```

dunque, niente da fare.

più in generale, i pacchetti che non compilano con lo stesso errore sono la stragrande maggioranza degli ebuild che producono file in site-packages.

quasi quasi, proverei a ripartire dalla cartella python di un cd di installazione.

solo che in questo modo, finisce che non riesco a capire la causa del guasto.

[edit]

... non c'è verso. si generano conflitti con le versioni compilate per python 3_8.

----------

## fedeliallalinea

Prova a vedere questa news se è il tuo caso, l'errore sembra quello.

----------

## cloc3

 *fedeliallalinea wrote:*   

> Prova a vedere questa news se è il tuo caso, l'errore sembra quello.

 

finalmente.

non avrei dovuto disinstallare dev-python/pyparsing, ma dev-python/setuptools_scm.

adesso ho rimosso python3.8 dal sistema.

----------

