python build не видит dill

Я через pip установил пакет dill. И его я могу импортировать и использовать.

setup.py

from setuptools import setup
import my_module

...

setup(
    ...
    version=my_module.__version__,
    install_requires=[
        'dill>=0.3.4',
    ],
    python_requires='>=3.8',
)

Но команда py -m build, выдаёт ошибку

* Creating venv isolated environment...
* Installing packages in isolated environment... (setuptools >= 40.8.0, wheel)
* Getting dependencies for wheel...
Traceback (most recent call last):
  File "D:\Programs\Python310\lib\site-packages\pep517\in_process\_in_process.py", line 363, in <module>
    main()
  File "D:\Programs\Python310\lib\site-packages\pep517\in_process\_in_process.py", line 345, in main
    json_out['return_val'] = hook(**hook_input['kwargs'])
  File "D:\Programs\Python310\lib\site-packages\pep517\in_process\_in_process.py", line 130, in get_requires_for_build_wheel
    return hook(config_settings)
  File "C:\Users\UserName\AppData\Local\Temp\build-env-2t4tqik4\lib\site-packages\setuptools\build_meta.py", line 177, in get_requires_for_build_wheel
    return self._get_build_requires(
  File "C:\Users\UserName\AppData\Local\Temp\build-env-2t4tqik4\lib\site-packages\setuptools\build_meta.py", line 159, in _get_build_requires
    self.run_setup()
  File "C:\Users\UserName\AppData\Local\Temp\build-env-2t4tqik4\lib\site-packages\setuptools\build_meta.py", line 281, in run_setup
    super(_BuildMetaLegacyBackend,
  File "C:\Users\UserName\AppData\Local\Temp\build-env-2t4tqik4\lib\site-packages\setuptools\build_meta.py", line 174, in run_setup
    exec(compile(code, __file__, 'exec'), locals())
  File "setup.py", line 2, in <module>
    import my_module
  File "D:\UserName\OneDrive\Проекты\my_module\my_module\__init__.py", line 1, in <module>
    from .my_module import *
  File "D:\UserName\OneDrive\Проекты\my_module\my_module\my_module.py", line 13, in <module>
    from .serialization import SerializeError, dump_dill, dump_pickle, dill_protocol, pickle_protocol
  File "D:\UserName\OneDrive\Проекты\my_module\my_module\serialization.py", line 4, in <module>
    import dill
ModuleNotFoundError: No module named 'dill'

ERROR Backend subproccess exited when trying to invoke get_requires_for_build_wheel

Ответы (1 шт):

Автор решения: евгений ярыкин

При создании .whl файлов, build создаёт виртуальное окружение в котором есть только стандартные библиотеки + setuptools + wheel.
Поэтому из setup.py нельзя импортировать весь модуль, при использовании сторонних модулей.

→ Ссылка