Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DeprecationWarning with importlib-metadata>=3.9.0 #2093

Closed
domdfcoding opened this issue Apr 17, 2021 · 1 comment · Fixed by #2126
Closed

DeprecationWarning with importlib-metadata>=3.9.0 #2093

domdfcoding opened this issue Apr 17, 2021 · 1 comment · Fixed by #2126

Comments

@domdfcoding
Copy link

Issue

importlib-metadata 3.6.0 changed the behaviour of entry_points() to no longer return a dictionary of entry points but instead return an object with a deprecated dict-like interface. As of importlib-metadata 3.9.0 a DeprecationWarning is emitted when calling the dictionary methods.

virtualenv calls .get() here:

@classmethod
def entry_points_for(cls, key):
return OrderedDict((e.name, e.load()) for e in cls.entry_points().get(key, {}))

This results in the following warning:

$ python3.6 -Wdefault -m virtualenv /tmp/venv
virtualenv/run/plugin/base.py:18: DeprecationWarning: SelectableGroups dict interface is deprecated. Use select.
  return OrderedDict((e.name, e.load()) for e in cls.entry_points().get(key, {}))

Environment

Provide at least:

  • OS: Ubuntu 20.04

  • pip list of the host python where virtualenv is installed:

    Package             Version
    ------------------- -------
    appdirs             1.4.4
    distlib             0.3.1
    filelock            3.0.12
    importlib-metadata  3.10.1
    importlib-resources 5.1.2
    pip                 21.0.1
    setuptools          54.0.0
    six                 1.15.0
    typing-extensions   3.7.4.3
    virtualenv          20.4.3
    wheel               0.36.2
    zipp                3.4.1
    

Output of the virtual environment creation

Make sure to run the creation with -vvv --with-traceback:

Output
60 setup logging to NOTSET [DEBUG report:43]
/tmp/virtualenv-issue/venv/lib/python3.6/site-packages/virtualenv/run/plugin/base.py:18: DeprecationWarning: SelectableGroups dict interface is deprecated. Use select.
  return OrderedDict((e.name, e.load()) for e in cls.entry_points().get(key, {}))
78 find interpreter for spec PythonSpec(path=/tmp/virtualenv-issue/venv/bin/python3.6) [INFO builtin:62]
78 discover exe for PythonInfo(spec=CPython3.6.13.final.0-64, exe=/tmp/virtualenv-issue/venv/bin/python3.6, platform=linux, version='3.6.13 (default, Feb 20 2021, 21:40:46) \n[GCC 9.3.0]', encoding_fs_io=utf-8-UTF-8) in /usr [DEBUG py_info:372]
78 filesystem is case-sensitive [DEBUG info:28]
79 Attempting to acquire lock 140329095360640 on /home/domdf/.local/share/virtualenv/py_info/1/30295c5bec572e859485b1ffa5e89b8b3e2022ef6e3e739c1ac40f143a557caf.lock [DEBUG filelock:270]
79 Lock 140329095360640 acquired on /home/domdf/.local/share/virtualenv/py_info/1/30295c5bec572e859485b1ffa5e89b8b3e2022ef6e3e739c1ac40f143a557caf.lock [INFO filelock:274]
79 got python info of /usr/bin/python3.6 from /home/domdf/.local/share/virtualenv/py_info/1/30295c5bec572e859485b1ffa5e89b8b3e2022ef6e3e739c1ac40f143a557caf.json [DEBUG via_disk_folder:135]
80 Attempting to release lock 140329095360640 on /home/domdf/.local/share/virtualenv/py_info/1/30295c5bec572e859485b1ffa5e89b8b3e2022ef6e3e739c1ac40f143a557caf.lock [DEBUG filelock:315]
80 Lock 140329095360640 released on /home/domdf/.local/share/virtualenv/py_info/1/30295c5bec572e859485b1ffa5e89b8b3e2022ef6e3e739c1ac40f143a557caf.lock [INFO filelock:318]
80 proposed PythonInfo(spec=CPython3.6.13.final.0-64, system=/usr/bin/python3.6, exe=/tmp/virtualenv-issue/venv/bin/python3.6, platform=linux, version='3.6.13 (default, Feb 20 2021, 21:40:46) \n[GCC 9.3.0]', encoding_fs_io=utf-8-UTF-8) [INFO builtin:69]
80 accepted PythonInfo(spec=CPython3.6.13.final.0-64, system=/usr/bin/python3.6, exe=/tmp/virtualenv-issue/venv/bin/python3.6, platform=linux, version='3.6.13 (default, Feb 20 2021, 21:40:46) \n[GCC 9.3.0]', encoding_fs_io=utf-8-UTF-8) [DEBUG builtin:71]
105 create virtual environment via CPython3Posix(dest=/tmp/venv, clear=False, no_vcs_ignore=False, global=False) [INFO session:52]
105 write /tmp/venv/pyvenv.cfg [DEBUG pyenv_cfg:34]
105 	home = /usr [DEBUG pyenv_cfg:38]
105 	implementation = CPython [DEBUG pyenv_cfg:38]
105 	version_info = 3.6.13.final.0 [DEBUG pyenv_cfg:38]
105 	virtualenv = 20.4.3 [DEBUG pyenv_cfg:38]
105 	include-system-site-packages = false [DEBUG pyenv_cfg:38]
105 	base-prefix = /usr [DEBUG pyenv_cfg:38]
105 	base-exec-prefix = /usr [DEBUG pyenv_cfg:38]
105 	base-executable = /usr/bin/python3.6 [DEBUG pyenv_cfg:38]
105 remove file /tmp/venv/bin/python [DEBUG _sync:38]
106 symlink /usr/bin/python3.6 to /tmp/venv/bin/python [DEBUG _sync:44]
106 create virtualenv import hook file /tmp/venv/lib/python3.6/site-packages/_virtualenv.pth [DEBUG api:95]
106 create /tmp/venv/lib/python3.6/site-packages/_virtualenv.py [DEBUG api:98]
106 ============================== target debug ============================== [DEBUG session:54]
106 debug via /tmp/venv/bin/python /tmp/virtualenv-issue/venv/lib/python3.6/site-packages/virtualenv/create/debug.py [DEBUG creator:224]
106 {
  "sys": {
    "executable": "/tmp/venv/bin/python",
    "_base_executable": null,
    "prefix": "/tmp/venv",
    "base_prefix": "/usr",
    "real_prefix": null,
    "exec_prefix": "/tmp/venv",
    "base_exec_prefix": "/usr",
    "path": [
      "/usr/lib/python36.zip",
      "/usr/lib/python3.6",
      "/usr/lib/python3.6/lib-dynload",
      "/tmp/venv/lib/python3.6/site-packages"
    ],
    "meta_path": [
      "<class '_virtualenv._Finder'>",
      "<class '_frozen_importlib.BuiltinImporter'>",
      "<class '_frozen_importlib.FrozenImporter'>",
      "<class '_frozen_importlib_external.PathFinder'>"
    ],
    "fs_encoding": "utf-8",
    "io_encoding": "UTF-8"
  },
  "version": "3.6.13 (default, Feb 20 2021, 21:40:46) \n[GCC 9.3.0]",
  "makefile_filename": "/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu/Makefile",
  "os": "<module 'os' from '/usr/lib/python3.6/os.py'>",
  "site": "<module 'site' from '/usr/lib/python3.6/site.py'>",
  "datetime": "<module 'datetime' from '/usr/lib/python3.6/datetime.py'>",
  "math": "<module 'math' (built-in)>",
  "json": "<module 'json' from '/usr/lib/python3.6/json/__init__.py'>"
} [DEBUG session:55]
130 add seed packages via FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/domdf/.local/share/virtualenv) [INFO session:59]
133 got embed update of distribution setuptools from /home/domdf/.local/share/virtualenv/wheel/3.6/embed/1/setuptools.json [DEBUG via_disk_folder:135]
133 got embed update of distribution pip from /home/domdf/.local/share/virtualenv/wheel/3.6/embed/1/pip.json [DEBUG via_disk_folder:135]
134 got embed update of distribution wheel from /home/domdf/.local/share/virtualenv/wheel/3.6/embed/1/wheel.json [DEBUG via_disk_folder:135]
140 got embed update of distribution setuptools from /home/domdf/.local/share/virtualenv/wheel/3.6/embed/1/setuptools.json [DEBUG via_disk_folder:135]
142 using periodically updated wheel /home/domdf/.local/share/virtualenv/wheel/house/setuptools-54.0.0-py3-none-any.whl [DEBUG periodic_update:53]
143 got embed update of distribution pip from /home/domdf/.local/share/virtualenv/wheel/3.6/embed/1/pip.json [DEBUG via_disk_folder:135]
143 got embed update of distribution wheel from /home/domdf/.local/share/virtualenv/wheel/3.6/embed/1/wheel.json [DEBUG via_disk_folder:135]
144 install setuptools from wheel /home/domdf/.local/share/virtualenv/wheel/house/setuptools-54.0.0-py3-none-any.whl via CopyPipInstall [DEBUG via_app_data:49]
144 install pip from wheel /tmp/virtualenv-issue/venv/lib/python3.6/site-packages/virtualenv/seed/wheels/embed/pip-21.0.1-py3-none-any.whl via CopyPipInstall [DEBUG via_app_data:49]
144 install wheel from wheel /tmp/virtualenv-issue/venv/lib/python3.6/site-packages/virtualenv/seed/wheels/embed/wheel-0.36.2-py2.py3-none-any.whl via CopyPipInstall [DEBUG via_app_data:49]
145 Attempting to acquire lock 140329092716248 on /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/setuptools-54.0.0-py3-none-any.lock [DEBUG filelock:270]
145 Attempting to acquire lock 140329092347888 on /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/wheel-0.36.2-py2.py3-none-any.lock [DEBUG filelock:270]
145 Attempting to acquire lock 140329092715240 on /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/pip-21.0.1-py3-none-any.lock [DEBUG filelock:270]
145 Lock 140329092347888 acquired on /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/wheel-0.36.2-py2.py3-none-any.lock [INFO filelock:274]
145 Lock 140329092716248 acquired on /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/setuptools-54.0.0-py3-none-any.lock [INFO filelock:274]
146 Lock 140329092715240 acquired on /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/pip-21.0.1-py3-none-any.lock [INFO filelock:274]
146 Attempting to release lock 140329092347888 on /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/wheel-0.36.2-py2.py3-none-any.lock [DEBUG filelock:315]
146 Lock 140329092347888 released on /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/wheel-0.36.2-py2.py3-none-any.lock [INFO filelock:318]
146 Attempting to release lock 140329092715240 on /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/pip-21.0.1-py3-none-any.lock [DEBUG filelock:315]
146 Attempting to release lock 140329092716248 on /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/setuptools-54.0.0-py3-none-any.lock [DEBUG filelock:315]
146 Lock 140329092715240 released on /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/pip-21.0.1-py3-none-any.lock [INFO filelock:318]
146 Lock 140329092716248 released on /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/setuptools-54.0.0-py3-none-any.lock [INFO filelock:318]
146 copy /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/wheel-0.36.2-py2.py3-none-any/wheel-0.36.2.virtualenv to /tmp/venv/lib/python3.6/site-packages/wheel-0.36.2.virtualenv [DEBUG _sync:52]
149 copy directory /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/wheel-0.36.2-py2.py3-none-any/wheel to /tmp/venv/lib/python3.6/site-packages/wheel [DEBUG _sync:52]
155 copy directory /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/wheel-0.36.2-py2.py3-none-any/wheel-0.36.2.dist-info to /tmp/venv/lib/python3.6/site-packages/wheel-0.36.2.dist-info [DEBUG _sync:52]
157 copy directory /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/setuptools-54.0.0-py3-none-any/setuptools to /tmp/venv/lib/python3.6/site-packages/setuptools [DEBUG _sync:52]
159 generated console scripts wheel wheel3 wheel3.6 wheel-3.6 [DEBUG base:48]
169 copy directory /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/pip-21.0.1-py3-none-any/pip to /tmp/venv/lib/python3.6/site-packages/pip [DEBUG _sync:52]
180 copy directory /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/setuptools-54.0.0-py3-none-any/_distutils_hack to /tmp/venv/lib/python3.6/site-packages/_distutils_hack [DEBUG _sync:52]
181 copy /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/setuptools-54.0.0-py3-none-any/setuptools-54.0.0.virtualenv to /tmp/venv/lib/python3.6/site-packages/setuptools-54.0.0.virtualenv [DEBUG _sync:52]
181 copy directory /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/setuptools-54.0.0-py3-none-any/setuptools-54.0.0.dist-info to /tmp/venv/lib/python3.6/site-packages/setuptools-54.0.0.dist-info [DEBUG _sync:52]
183 copy directory /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/setuptools-54.0.0-py3-none-any/pkg_resources to /tmp/venv/lib/python3.6/site-packages/pkg_resources [DEBUG _sync:52]
187 copy /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/setuptools-54.0.0-py3-none-any/distutils-precedence.pth to /tmp/venv/lib/python3.6/site-packages/distutils-precedence.pth [DEBUG _sync:52]
187 generated console scripts  [DEBUG base:48]
209 copy /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/pip-21.0.1-py3-none-any/pip-21.0.1.virtualenv to /tmp/venv/lib/python3.6/site-packages/pip-21.0.1.virtualenv [DEBUG _sync:52]
210 copy directory /home/domdf/.local/share/virtualenv/wheel/3.6/image/1/CopyPipInstall/pip-21.0.1-py3-none-any/pip-21.0.1.dist-info to /tmp/venv/lib/python3.6/site-packages/pip-21.0.1.dist-info [DEBUG _sync:52]
211 generated console scripts pip-3.6 pip3.6 pip pip3 [DEBUG base:48]
211 add activators for Bash, CShell, Fish, PowerShell, Python, Xonsh [INFO session:66]
214 write /tmp/venv/pyvenv.cfg [DEBUG pyenv_cfg:34]
214 	home = /usr [DEBUG pyenv_cfg:38]
214 	implementation = CPython [DEBUG pyenv_cfg:38]
214 	version_info = 3.6.13.final.0 [DEBUG pyenv_cfg:38]
214 	virtualenv = 20.4.3 [DEBUG pyenv_cfg:38]
214 	include-system-site-packages = false [DEBUG pyenv_cfg:38]
214 	base-prefix = /usr [DEBUG pyenv_cfg:38]
214 	base-exec-prefix = /usr [DEBUG pyenv_cfg:38]
214 	base-executable = /usr/bin/python3.6 [DEBUG pyenv_cfg:38]
214 created virtual environment CPython3.6.13.final.0-64 in 155ms
  creator CPython3Posix(dest=/tmp/venv, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/domdf/.local/share/virtualenv)
    added seed packages: pip==21.0.1, setuptools==54.0.0, wheel==0.36.2
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator [WARNING __main__:19]

See python/importlib_metadata#278 and python/importlib_metadata#289 for more context. The changelog for importlib-metadata suggests https://pypi.org/project/backports.entry-points-selectable/ as a possible solution.

This is currently only an issue on Python 3.7 and earlier, as virtualenv uses the standard library on newer versions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants