Как установить модуль dotenv?

Рейтинг: 1Ответов: 1Опубликовано: 13.02.2023

При установке модуля dotenv на Python 3.10 командой pip install dotenv получаю следующий трейсбек:

Collecting dotenv
  Using cached dotenv-0.0.5.tar.gz (2.4 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [66 lines of output]
      D:\Python310\lib\site-packages\setuptools\installer.py:27: SetuptoolsDeprecationWarning: setuptools.installer is deprecated. Requirements should be satisfied by a PEP 517 installer.
        warnings.warn(
        error: subprocess-exited-with-error

        python setup.py egg_info did not run successfully.
        exit code: 1

        [16 lines of output]
        Traceback (most recent call last):
          File "<string>", line 2, in <module>
          File "<pip-setuptools-caller>", line 14, in <module>
          File "C:\Users\pasha\AppData\Local\Temp\pip-wheel-if_1tfmv\distribute_ff155e4f8aab4fceb2680b957c217434\setuptools\__init__.py", line 2, in <module>
            from setuptools.extension import Extension, Library
          File "C:\Users\pasha\AppData\Local\Temp\pip-wheel-if_1tfmv\distribute_ff155e4f8aab4fceb2680b957c217434\setuptools\extension.py", line 5, in <module>
            from setuptools.dist import _get_unpatched
          File "C:\Users\pasha\AppData\Local\Temp\pip-wheel-if_1tfmv\distribute_ff155e4f8aab4fceb2680b957c217434\setuptools\dist.py", line 7, in <module>
            from setuptools.command.install import install
          File "C:\Users\pasha\AppData\Local\Temp\pip-wheel-if_1tfmv\distribute_ff155e4f8aab4fceb2680b957c217434\setuptools\command\__init__.py", line 8, in <module>
            from setuptools.command import install_scripts
          File "C:\Users\pasha\AppData\Local\Temp\pip-wheel-if_1tfmv\distribute_ff155e4f8aab4fceb2680b957c217434\setuptools\command\install_scripts.py", line 3, in <module>
            from pkg_resources import Distribution, PathMetadata, ensure_directory
          File "C:\Users\pasha\AppData\Local\Temp\pip-wheel-if_1tfmv\distribute_ff155e4f8aab4fceb2680b957c217434\pkg_resources.py", line 1518, in <module>
            register_loader_type(importlib_bootstrap.SourceFileLoader, DefaultProvider)
        AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader'
        [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.

      note: This is an issue with the package mentioned above, not pip.
      hint: See above for details.
      Traceback (most recent call last):
        File "D:\Python310\lib\site-packages\setuptools\installer.py", line 82, in fetch_build_egg
          subprocess.check_call(cmd)
        File "D:\Python310\lib\subprocess.py", line 369, in check_call
          raise CalledProcessError(retcode, cmd)
      subprocess.CalledProcessError: Command '['D:\\Python310\\python.exe', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', 'C:\\Users\\pasha\\AppData\\Local\\Temp\\tmpjse77swv', '--quiet', 'distribute']' returned non-zero exit status 1.

      The above exception was the direct cause of the following exception:

      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "C:\Users\pasha\AppData\Local\Temp\pip-install-so9xk169\dotenv_4ed59ef94925422d99e350352d5ca263\setup.py", line 13, in <module>
          setup(name='dotenv',
        File "D:\Python310\lib\site-packages\setuptools\__init__.py", line 86, in setup
          _install_setup_requires(attrs)
        File "D:\Python310\lib\site-packages\setuptools\__init__.py", line 80, in _install_setup_requires
          dist.fetch_build_eggs(dist.setup_requires)
        File "D:\Python310\lib\site-packages\setuptools\dist.py", line 874, in fetch_build_eggs
          resolved_dists = pkg_resources.working_set.resolve(
        File "D:\Python310\lib\site-packages\pkg_resources\__init__.py", line 789, in resolve
          dist = best[req.key] = env.best_match(
        File "D:\Python310\lib\site-packages\pkg_resources\__init__.py", line 1075, in best_match
          return self.obtain(req, installer)
        File "D:\Python310\lib\site-packages\pkg_resources\__init__.py", line 1087, in obtain
          return installer(requirement)
        File "D:\Python310\lib\site-packages\setuptools\dist.py", line 944, in fetch_build_egg
          return fetch_build_egg(self, req)
        File "D:\Python310\lib\site-packages\setuptools\installer.py", line 84, in fetch_build_egg
          raise DistutilsError(str(e)) from e
      distutils.errors.DistutilsError: Command '['D:\\Python310\\python.exe', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', 'C:\\Users\\pasha\\AppData\\Local\\Temp\\tmpjse77swv', '--quiet', 'distribute']' returned non-zero exit status 1.
      [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.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

Я уже пробовал обновить pip, wheel и setuptools, но это не помогло решить проблему. Даже перешёл в виртуальное окружение, дабы установить этот модуль изолированно, но и здесь ничего не вышло. Как установить dotenv?

Ответы

▲ 2Принят

Модуль называется python-dotenv, а не dotenv.
Установите его командой pip install python-dotenv, и всё получится.

Формальный перевод оригинального ответа со Stack Overflow by @F.M для русскоязычного сообщества.
Столкнулся с такой проблемой сам, но ответа на русскоязычном форуме не нашёл.