Adding documentation to the README for import errors in vim (#1317)
* Adding documentation to the README for import errors in vim I had the same issue as psf/black#1148 and have been searching for a solution to this. I realized that you cannot fix it by change anything in the code, but by re-compiling the C extensions of regex and typed-ast. Installing this packages from the tarballs solves the problem. * Fixing a bad copy&paste Co-Authored-By: Hugo van Kemenade <hugovk@users.noreply.github.com> * chore: changed made by pre-commit * chore: better way of dealing with non-binary installs * chore: adding vim cache files to the ignore list Co-authored-by: Hugo van Kemenade <hugovk@users.noreply.github.com>
This commit is contained in:
parent
2da2c15b21
commit
0721f11731
1
.gitignore
vendored
1
.gitignore
vendored
@ -13,3 +13,4 @@ _black_version.py
|
||||
.idea
|
||||
.eggs
|
||||
.dmypy.json
|
||||
*.swp
|
||||
|
49
README.md
49
README.md
@ -823,6 +823,55 @@ default. On macOS with Homebrew run: `brew install vim`. When building Vim from
|
||||
use: `./configure --enable-python3interp=yes`. There's many guides online how to do
|
||||
this.
|
||||
|
||||
**I get an import error when using _Black_ from a virtual environment**: If you get an
|
||||
error message like this:
|
||||
|
||||
```text
|
||||
Traceback (most recent call last):
|
||||
File "<string>", line 63, in <module>
|
||||
File "/home/gui/.vim/black/lib/python3.7/site-packages/black.py", line 45, in <module>
|
||||
from typed_ast import ast3, ast27
|
||||
File "/home/gui/.vim/black/lib/python3.7/site-packages/typed_ast/ast3.py", line 40, in <module>
|
||||
from typed_ast import _ast3
|
||||
ImportError: /home/gui/.vim/black/lib/python3.7/site-packages/typed_ast/_ast3.cpython-37m-x86_64-linux-gnu.so: undefined symbool: PyExc_KeyboardInterrupt
|
||||
```
|
||||
|
||||
Then you need to install `typed_ast` and `regex` directly from the source code. The
|
||||
error happens because `pip` will download [Python wheels](https://pythonwheels.com/) if
|
||||
they are available. Python wheels are a new standard of distributing Python packages and
|
||||
packages that have Cython and extensions written in C are already compiled, so the
|
||||
installation is much more faster. The problem here is that somehow the Python
|
||||
environment inside Vim does not match with those already compiled C extensions and these
|
||||
kind of errors are the result. Luckily there is an easy fix: installing the packages
|
||||
from the source code.
|
||||
|
||||
The two packages that cause the problem are:
|
||||
|
||||
- [regex](https://pypi.org/project/regex/)
|
||||
- [typed-ast](https://pypi.org/project/typed-ast/)
|
||||
|
||||
Now remove those two packages:
|
||||
|
||||
```console
|
||||
$ pip uninstall regex typed-ast -y
|
||||
```
|
||||
|
||||
And now you can install them with:
|
||||
|
||||
```console
|
||||
$ pip install --no-binary :all: regex typed-ast
|
||||
```
|
||||
|
||||
The C extensions will be compiled and now Vim's Python environment will match. Note that
|
||||
you need to have the GCC compiler and the Python development files installed (on
|
||||
Ubuntu/Debian do `sudo apt-get install build-essential python3-dev`).
|
||||
|
||||
If you later want to update _Black_, you should do it like this:
|
||||
|
||||
```console
|
||||
$ pip install -U black --no-binary regex,typed-ast
|
||||
```
|
||||
|
||||
### Visual Studio Code
|
||||
|
||||
Use the
|
||||
|
Loading…
Reference in New Issue
Block a user