Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.debian.maint.python > #14515 > unrolled thread

how to fix TypeError: expected string or bytes-like object ?

Started byBo YU <tsu.yubo@gmail.com>
First post2022-10-05 11:50 +0200
Last post2022-10-06 03:50 +0200
Articles 5 — 2 participants

Back to article view | Back to linux.debian.maint.python


Contents

  how to fix TypeError: expected string or bytes-like object ? Bo YU <tsu.yubo@gmail.com> - 2022-10-05 11:50 +0200
    Re: how to fix TypeError: expected string or bytes-like object ? Felix Yan <felixonmars@archlinux.org> - 2022-10-05 12:50 +0200
      Re: how to fix TypeError: expected string or bytes-like object ? Bo YU <tsu.yubo@gmail.com> - 2022-10-05 13:10 +0200
        Re: how to fix TypeError: expected string or bytes-like object ? Felix Yan <felixonmars@archlinux.org> - 2022-10-05 13:30 +0200
          Re: how to fix TypeError: expected string or bytes-like object ? Bo YU <tsu.yubo@gmail.com> - 2022-10-06 03:50 +0200

#14515 — how to fix TypeError: expected string or bytes-like object ?

FromBo YU <tsu.yubo@gmail.com>
Date2022-10-05 11:50 +0200
Subjecthow to fix TypeError: expected string or bytes-like object ?
Message-ID<Fd9cl-cbqD-1@gated-at.bofh.it>
hi,
(maybe this is off topic on this list)
When I want to run sphinx cmd on my pc, I got the error:
```
vimer@dev:~/build/rfs/packages/test_dir$ cat /tmp/sphinx-err-etgbo9tg.log
# Sphinx version: 4.5.0
# Python version: 3.10.7 (CPython)
# Docutils version: 0.17.1 release
# Jinja2 version: 3.0.3
# Last messages:

# Loaded extensions:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/sphinx/cmd/build.py", line 272,
in build_main
    app = Sphinx(args.sourcedir, args.confdir, args.outputdir,
  File "/usr/lib/python3/dist-packages/sphinx/application.py", line
220, in __init__
    self.preload_builder(buildername)
  File "/usr/lib/python3/dist-packages/sphinx/application.py", line
297, in preload_builder
    self.registry.preload_builder(self, name)
  File "/usr/lib/python3/dist-packages/sphinx/registry.py", line 142,
in preload_builder
    builder_entry_points = entry_points(group='sphinx.builders')
  File "/usr/lib/python3/dist-packages/importlib_metadata/__init__.py",
line 1047, in entry_points
    return SelectableGroups.load(eps).select(**params)
  File "/usr/lib/python3/dist-packages/importlib_metadata/__init__.py",
line 477, in load
    ordered = sorted(eps, key=by_group)
  File "/usr/lib/python3/dist-packages/importlib_metadata/__init__.py",
line 1044, in <genexpr>
    eps = itertools.chain.from_iterable(
  File "/usr/lib/python3/dist-packages/importlib_metadata/_itertools.py",
line 16, in unique_everseen
    k = key(element)
  File "/usr/lib/python3/dist-packages/importlib_metadata/__init__.py",
line 961, in _normalized_name
    or super()._normalized_name
  File "/usr/lib/python3/dist-packages/importlib_metadata/__init__.py",
line 628, in _normalized_name
    return Prepared.normalize(self.name)
  File "/usr/lib/python3/dist-packages/importlib_metadata/__init__.py",
line 883, in normalize
    return re.sub(r"[-_.]+", "-", name).lower().replace('-', '_')
  File "/usr/lib/python3.10/re.py", line 209, in sub
    return _compile(pattern, flags).sub(repl, string, count)
TypeError: expected string or bytes-like object
```
The problem may be in importlib_metadata here, but I am not sure how to fix it.
I remembered I do `python setup.py build/install` something ago.
Any help is welcome!

BR,
Bo

[toc] | [next] | [standalone]


#14516

FromFelix Yan <felixonmars@archlinux.org>
Date2022-10-05 12:50 +0200
Message-ID<Fda8p-cbZB-3@gated-at.bofh.it>
In reply to#14515

[Multipart message — attachments visible in raw view] — view raw

On 10/5/22 12:47, Bo YU wrote:
> hi,
> (maybe this is off topic on this list)
> When I want to run sphinx cmd on my pc, I got the error:
> ```
> vimer@dev:~/build/rfs/packages/test_dir$ cat /tmp/sphinx-err-etgbo9tg.log
> # Sphinx version: 4.5.0
> # Python version: 3.10.7 (CPython)
> # Docutils version: 0.17.1 release
> # Jinja2 version: 3.0.3
> # Last messages:
> 
> # Loaded extensions:
> Traceback (most recent call last):
>    File "/usr/lib/python3/dist-packages/sphinx/cmd/build.py", line 272,
> in build_main
>      app = Sphinx(args.sourcedir, args.confdir, args.outputdir,
>    File "/usr/lib/python3/dist-packages/sphinx/application.py", line
> 220, in __init__
>      self.preload_builder(buildername)
>    File "/usr/lib/python3/dist-packages/sphinx/application.py", line
> 297, in preload_builder
>      self.registry.preload_builder(self, name)
>    File "/usr/lib/python3/dist-packages/sphinx/registry.py", line 142,
> in preload_builder
>      builder_entry_points = entry_points(group='sphinx.builders')
>    File "/usr/lib/python3/dist-packages/importlib_metadata/__init__.py",
> line 1047, in entry_points
>      return SelectableGroups.load(eps).select(**params)
>    File "/usr/lib/python3/dist-packages/importlib_metadata/__init__.py",
> line 477, in load
>      ordered = sorted(eps, key=by_group)
>    File "/usr/lib/python3/dist-packages/importlib_metadata/__init__.py",
> line 1044, in <genexpr>
>      eps = itertools.chain.from_iterable(
>    File "/usr/lib/python3/dist-packages/importlib_metadata/_itertools.py",
> line 16, in unique_everseen
>      k = key(element)
>    File "/usr/lib/python3/dist-packages/importlib_metadata/__init__.py",
> line 961, in _normalized_name
>      or super()._normalized_name
>    File "/usr/lib/python3/dist-packages/importlib_metadata/__init__.py",
> line 628, in _normalized_name
>      return Prepared.normalize(self.name)
>    File "/usr/lib/python3/dist-packages/importlib_metadata/__init__.py",
> line 883, in normalize
>      return re.sub(r"[-_.]+", "-", name).lower().replace('-', '_')
>    File "/usr/lib/python3.10/re.py", line 209, in sub
>      return _compile(pattern, flags).sub(repl, string, count)
> TypeError: expected string or bytes-like object
> ```

Looks like this: https://github.com/sphinx-doc/sphinx/issues/10339

Are you using the rinohtype extension too?

-- 
Regards,
Felix Yan

[toc] | [prev] | [next] | [standalone]


#14517

FromBo YU <tsu.yubo@gmail.com>
Date2022-10-05 13:10 +0200
Message-ID<FdarL-cclL-5@gated-at.bofh.it>
In reply to#14516

[Multipart message — attachments visible in raw view] — view raw

Hi,
On Wed, Oct 05, 2022 at 01:33:53PM +0300, Felix Yan wrote:
>On 10/5/22 12:47, Bo YU wrote:
>>hi,
>>(maybe this is off topic on this list)
>>When I want to run sphinx cmd on my pc, I got the error:
>>```
[...]
>>line 883, in normalize
>>     return re.sub(r"[-_.]+", "-", name).lower().replace('-', '_')
>>   File "/usr/lib/python3.10/re.py", line 209, in sub
>>     return _compile(pattern, flags).sub(repl, string, count)
>>TypeError: expected string or bytes-like object
>>```
>
>Looks like this: https://github.com/sphinx-doc/sphinx/issues/10339

I noticed it also but I did not remember use sphinx with rinohtype
extension.
>
>Are you using the rinohtype extension too?

The fact is that I am packaging the sphinxcontrib-ditaa[0] and I want to
test it via pip3:

```
vimer@dev:~/build/rfs/packages/test_dir$ sudo pip3 install  sphinxcontrib-ditaa
Collecting sphinxcontrib-ditaa
   Using cached sphinxcontrib-ditaa-1.0.1.tar.gz (7.5 kB)
   Preparing metadata (setup.py) ... error
   error: subprocess-exited-with-error

   × python setup.py egg_info did not run successfully.
   │ exit code: 1
   ╰─> [30 lines of output]
       Traceback (most recent call last):
         File "<string>", line 2, in <module>
         File "<pip-setuptools-caller>", line 34, in <module>
         File "/tmp/pip-install-c2wygkxs/sphinxcontrib-ditaa_10e1c64028af47e59b8fc5bf20b6901c/setup.py", line 8, in <module>
           setup(
         File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 86, in setup
           _install_setup_requires(attrs)
         File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 75, in _install_setup_requires
           dist = MinimalDistribution(attrs)
         File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 57, in __init__
           super().__init__(filtered)
         File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 474, in __init__
           for ep in metadata.entry_points(group='distutils.setup_keywords'):
         File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 1009, in entry_points
           return SelectableGroups.load(eps).select(**params)
         File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 459, in load
           ordered = sorted(eps, key=by_group)
         File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 1006, in <genexpr>
           eps = itertools.chain.from_iterable(
         File "/usr/lib/python3.10/importlib/metadata/_itertools.py", line 16, in unique_everseen
           k = key(element)
         File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 941, in _normalized_name
           return self._name_from_stem(stem) or super()._normalized_name
         File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 622, in _normalized_name
           return Prepared.normalize(self.name)
         File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 871, in normalize
           return re.sub(r"[-_.]+", "-", name).lower().replace('-', '_')
         File "/usr/lib/python3.10/re.py", line 209, in sub
           return _compile(pattern, flags).sub(repl, string, count)
       TypeError: expected string or bytes-like object
       [end of output]

   note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

```

So I think the issue maybe not raised from sphinx extension, but it could be worse than that.

Thanks for help:)
[0]: https://pypi.org/project/sphinxcontrib-ditaa/
>
>-- 
>Regards,
>Felix Yan
>




-- 
Regards,
--
   Bo YU

[toc] | [prev] | [next] | [standalone]


#14518

FromFelix Yan <felixonmars@archlinux.org>
Date2022-10-05 13:30 +0200
Message-ID<FdaL8-ccsd-5@gated-at.bofh.it>
In reply to#14517

[Multipart message — attachments visible in raw view] — view raw

On 10/5/22 14:02, Bo YU wrote:
> ```
> vimer@dev:~/build/rfs/packages/test_dir$ sudo pip3 install  
> sphinxcontrib-ditaa
> Collecting sphinxcontrib-ditaa
>    Using cached sphinxcontrib-ditaa-1.0.1.tar.gz (7.5 kB)
>    Preparing metadata (setup.py) ... error
>    error: subprocess-exited-with-error
> 
>    × python setup.py egg_info did not run successfully.
>    │ exit code: 1
>    ╰─> [30 lines of output]
>        Traceback (most recent call last):
>          File "<string>", line 2, in <module>
>          File "<pip-setuptools-caller>", line 34, in <module>
>          File 
> "/tmp/pip-install-c2wygkxs/sphinxcontrib-ditaa_10e1c64028af47e59b8fc5bf20b6901c/setup.py", line 8, in <module>
>            setup(
>          File "/usr/lib/python3/dist-packages/setuptools/__init__.py", 
> line 86, in setup
>            _install_setup_requires(attrs)
>          File "/usr/lib/python3/dist-packages/setuptools/__init__.py", 
> line 75, in _install_setup_requires
>            dist = MinimalDistribution(attrs)
>          File "/usr/lib/python3/dist-packages/setuptools/__init__.py", 
> line 57, in __init__
>            super().__init__(filtered)
>          File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 
> 474, in __init__
>            for ep in 
> metadata.entry_points(group='distutils.setup_keywords'):
>          File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 
> 1009, in entry_points
>            return SelectableGroups.load(eps).select(**params)
>          File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 
> 459, in load
>            ordered = sorted(eps, key=by_group)
>          File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 
> 1006, in <genexpr>
>            eps = itertools.chain.from_iterable(
>          File "/usr/lib/python3.10/importlib/metadata/_itertools.py", 
> line 16, in unique_everseen
>            k = key(element)
>          File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 
> 941, in _normalized_name
>            return self._name_from_stem(stem) or super()._normalized_name
>          File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 
> 622, in _normalized_name
>            return Prepared.normalize(self.name)
>          File "/usr/lib/python3.10/importlib/metadata/__init__.py", line 
> 871, in normalize
>            return re.sub(r"[-_.]+", "-", name).lower().replace('-', '_')
>          File "/usr/lib/python3.10/re.py", line 209, in sub
>            return _compile(pattern, flags).sub(repl, string, count)
>        TypeError: expected string or bytes-like object
>        [end of output]
> 
>    note: This error originates from a subprocess, and is likely not a 
> problem with pip.
> error: metadata-generation-failed
> 
> × Encountered error while generating package metadata.
> ╰─> See above for output.
> 
> ```

You are right. The traceback is indeed different but more similar to 
this one, probably: https://github.com/pypa/setuptools/issues/3273

I have tried to make an empty .dist-info dir and got the very similar 
result to yours.

The following command may help to locate the actual offending package:

strace -eopenat python -c "from importlib.metadata import entry_points; 
print(entry_points(group='sphinx.builders'))"

-- 
Regards,
Felix Yan

[toc] | [prev] | [next] | [standalone]


#14521

FromBo YU <tsu.yubo@gmail.com>
Date2022-10-06 03:50 +0200
Message-ID<Fdobo-ckrL-1@gated-at.bofh.it>
In reply to#14518

[Multipart message — attachments visible in raw view] — view raw

Hi,
On Wed, Oct 05, 2022 at 02:28:56PM +0300, Felix Yan wrote:
>On 10/5/22 14:02, Bo YU wrote:
>>```
>>vimer@dev:~/build/rfs/packages/test_dir$ sudo pip3 install  
>>sphinxcontrib-ditaa
>>Collecting sphinxcontrib-ditaa
>>   Using cached sphinxcontrib-ditaa-1.0.1.tar.gz (7.5 kB)
>>   Preparing metadata (setup.py) ... error
>>   error: subprocess-exited-with-error
>>
[...]
>>           return self._name_from_stem(stem) or super()._normalized_name
>>         File "/usr/lib/python3.10/importlib/metadata/__init__.py", 
>>line 622, in _normalized_name
>>           return Prepared.normalize(self.name)
>>         File "/usr/lib/python3.10/importlib/metadata/__init__.py", 
>>line 871, in normalize
>>           return re.sub(r"[-_.]+", "-", name).lower().replace('-', '_')
>>         File "/usr/lib/python3.10/re.py", line 209, in sub
>>           return _compile(pattern, flags).sub(repl, string, count)
>>       TypeError: expected string or bytes-like object
>>       [end of output]
>>
>>   note: This error originates from a subprocess, and is likely not 
>>a problem with pip.
>>error: metadata-generation-failed
>>
>>× Encountered error while generating package metadata.
>>╰─> See above for output.
>>
>>```
>
>You are right. The traceback is indeed different but more similar to 
>this one, probably: https://github.com/pypa/setuptools/issues/3273
>
>I have tried to make an empty .dist-info dir and got the very similar 
>result to yours.
>
>The following command may help to locate the actual offending package:
>
>strace -eopenat python -c "from importlib.metadata import 
>entry_points; print(entry_points(group='sphinx.builders'))"
>

Great! It works.

I deleted the package that was installed by setup.py with above command
hint. Everythng is well now.

Many thanks~

-- 
Regards,
--
   Bo YU

[toc] | [prev] | [standalone]


Back to top | Article view | linux.debian.maint.python


csiph-web