Sorting imports fails on Python VSCode extension
Asked Answered
W

1

1

Background

I have an anaconda environment that has Python 3.7 installed. I have a file with some imports out of order which I want VScode to order when pressing CRTL+s.

However, instead or ordering the imports, there is a crash and nothing happens.

Problem

When I press CRTL+s on my VScode, I get a pop up saying the Python extension crashes. After some investigation, this is the stack-trace I found:

Error 2021-10-15 16:00:05: Traceback (most recent call last):
  File "/home/user/.vscode/extensions/ms-python.python-2021.10.1336267007/pythonFiles/sortImports.py", line 12, in <module>

Traceback (most recent call last):
  File "/home/user/.vscode/extensions/ms-python.python-2021.10.1336267007/pythonFiles/sortImports.py", line 12, in <module>

Error 2021-10-15 16:00:05: Failed to format imports for '/home/user/Workplace/work/my-project/cars/client.py'. Traceback (most recent call last):
  File "/home/user/.vscode/extensions/ms-python.python-2021.10.1336267007/pythonFiles/sortImports.py", line 12, in <module>

Error 2021-10-15 16:00:05:     import isort.main
  File "/home/user/.vscode/extensions/ms-python.python-2021.10.1336267007/pythonFiles/lib/python/isort/__init__.py", line 21, in <module>
    from . import settings
  File "/home/user/.vscode/extensions/ms-python.python-2021.10.1336267007/pythonFiles/lib/python/isort/settings.py", line 5, in <module>
    import configparser
  File "/home/user/anaconda3/envs/my-project/lib/python3.7/configparser.py", line 147, in <module>
    import re
  File "/home/user/anaconda3/envs/my-project/lib/python3.7/re.py", line 124, in <module>
    import enum
  File "/home/user/anaconda3/envs/my-project/lib/python3.7/enum.py", line 2, in <module>
    from types import MappingProxyType, DynamicClassAttribute
  File "/home/user/Workplace/work/my-project/cars/types.py", line 1, in <module>
    from pathlib import Path
  File "/home/user/anaconda3/envs/my-project/lib/python3.7/pathlib.py", line 13, in <module>
    from urllib.parse import quote_from_bytes as urlquote_from_bytes
  File "/home/user/anaconda3/envs/my-project/lib/python3.7/urllib/parse.py", line 627, in <module>
    _asciire = re.compile('([\x00-\x7f]+)')
AttributeError: module 're' has no attribute 'compile'

I don't see any issues with my setup. For more information, this is my conda env setup:

name: my-project
channels:
  - pytorch
  - defaults
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=4.5=1_gnu
  - blas=1.0=mkl
  - ca-certificates=2021.9.30=h06a4308_1
  - certifi=2021.10.8=py37h06a4308_0
  - cpuonly=1.0=0
  - intel-openmp=2021.3.0=h06a4308_3350
  - ld_impl_linux-64=2.35.1=h7274673_9
  - libffi=3.3=he6710b0_2
  - libgcc-ng=9.3.0=h5101ec6_17
  - libgomp=9.3.0=h5101ec6_17
  - libstdcxx-ng=9.3.0=hd4cf53a_17
  - libuv=1.40.0=h7b6447c_0
  - mkl=2021.3.0=h06a4308_520
  - ncurses=6.2=he6710b0_1
  - ninja=1.10.2=hff7bd54_1
  - openssl=1.1.1l=h7f8727e_0
  - pip=21.2.2=py37h06a4308_0
  - pytest-mock=3.6.1=pyhd3eb1b0_0
  - python=3.7.11=h12debd9_0
  - pytorch=1.9.1=py3.7_cpu_0
  - readline=8.1=h27cfd23_0
  - setuptools=58.0.4=py37h06a4308_0
  - sqlite=3.36.0=hc218d9a_0
  - tk=8.6.11=h1ccaba5_0
  - torchaudio=0.9.1=py37
  - typing-extensions=3.10.0.2=hd3eb1b0_0
  - typing_extensions=3.10.0.2=pyh06a4308_0
  - wheel=0.37.0=pyhd3eb1b0_1
  - xz=5.2.5=h7b6447c_0
  - zlib=1.2.11=h7b6447c_3
  - pip:
    - argcomplete==1.12.3
    - attrs==21.2.0
    - babel==2.9.1
    - beautifulsoup4==4.10.0
    - black==21.9b0
    - charset-normalizer==2.0.4
    - click==7.1.2
    - colorama==0.4.4
    - colorclass==2.2.0
    - commonmark==0.9.1
    - dataclasses==0.6
    - docutils==0.16
    - humanize==3.11.0
    - idna==3.2
    - imagesize==1.2.0
    - importlib-metadata==4.8.1
    - iniconfig==1.1.1
    - jinja2==3.0.1
    - m2r==0.2.1
    - markupsafe==2.0.1
    - mistune==0.8.4
    - mypy==0.910
    - mypy-extensions==0.4.3
    - nodeenv==1.6.0
    - numpy==1.21.2
    - packaging==21.0
    - pathspec==0.9.0
    - pillow==8.3.2
    - platformdirs==2.4.0
    - pluggy==1.0.0
    - py==1.10.0
    - pygments==2.10.0
    - pyparsing==2.4.7
    - pyright==0.0.10
    - pytest==6.2.5
    - pytest-describe==2.0.0
    - pytz==2021.1
    - pyyaml==5.4.1
    - regex==2021.10.8
    - requests==2.26.0
    - requests-toolbelt==0.9.1
    - responses==0.13.4
    - rich==10.12.0
    - six==1.16.0
    - snowballstemmer==2.1.0
    - soupsieve==2.2.1
    - tests==0.7
    - toml==0.10.2
    - tomli==1.2.1
    - torch==1.9.1+cpu
    - typed-ast==1.4.3
    - types-pyyaml==5.4.12
    - types-requests==2.25.11
    - upolygon==0.1.6
    - urllib3==1.26.6
    - zipp==3.5.0
variables:
  PYTHONPATH: .
prefix: /home/user/anaconda3/envs/my-project

At first I thought it could be a dependency issue, so I started removing every extra dependency I could find.

However, even after doing it, My vscode extension is still not working.

Questions

  • What is wrong with my setup?
  • How can I fix it?
Wulfenite answered 15/10, 2021 at 14:6 Comment(4)
once you are on vscode,open a terminal (Terminal-->New terminal), do you see if your virtual env (myenv) is activated after CTRL+S ?Interwork
Yes, it is activated.Wulfenite
from the terminal, review the packages pip freeze, python version. Then run the program python program.py. This will ensure the env is in good shape. if you still get the error module 're' has no attribute 'compile' then urllib seems to have an issue.Interwork
Do you have any file names re in your workspace? And can you find the compile function in the "/home/user/anaconda3/envs/my-project/lib/python3.7/re.py"?Helgeson
W
1

Reason

The problem here is that I had broken dependencies which would not allow me to do any updates nor new installs.

This had to do with having packages from both conda and pip. Some of them play nice together, some don't.

Solution

My solution, was unfortunately, rather atomic. I deleted the environment and created a new one with Python 3.7. Upon doing that, I also added an extra conda channel conda-forge which I recommend instead of pip.

Once I did that I installed all the dependencies and packages using conda and it worked.

Commands

Here are the command I used:

conda create -n my-project python=3.7
conda config --env --add channels conda-forge
conda env config vars set PYTHONPATH="."
conda deactivate
conda activate my-project 

And then conda isntall ... the packages you need.

Wulfenite answered 27/10, 2021 at 9:34 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.