Я использую python3
через linuxbrew
, и сегодня, похоже, было решающее python -обновление, заменяющее python 3.7 на 3.8 в целом.
Что касается моей ОС (Lubuntu 18.04 LTS ):
Operating System: Ubuntu 18.04.4 LTS
Kernel: Linux 5.3.0-62-generic
Architecture: x86-64
Вот почему pip-upgrade всех моих python сайтов-пакетов тогда не работал:
pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
Выданная ошибка была:
# /home/andylu/Desktop/Shell/python_package_complete_update_via_homebrew_n_pip: /home/linuxbrew/.linuxbrew/bin/pip: /home/linuxbrew/.linuxbrew/opt/python/bin/python3.7: bad interpreter: No such file or directory
# WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
# Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
# To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
# Defaulting to user installation because normal site-packages is not writeable
# ERROR: You must give at least one requirement to install (see "pip help install")
Позже я узнал, что есть установка новой версии python. Как ни странно, было создано две папки:
/home/linuxbrew/.linuxbrew/lib/python3.8
/home/linuxbrew/.linuxbrew/Cellar/python@3.8/3.8.3_2/lib/python3.8
В качестве пакетов сайтов в новом python3 Папка .8 оказалась совершенно пустой, я переместил все пакеты сайтов (> 1 ГБ) из остатка / остатка python3 .7 в новую папку python3 .8. При этом я предположил, что они также будут работать под python 3.8, вместо того, чтобы удалять и переустанавливать их все.
Более того, я решил, что пакеты сайтов в /home/linuxbrew/.linuxbrew/Cellar/python@3.8/3.8.3_2/lib/python3.8
кажутся простой ссылкой в папку под /home/linuxbrew/.linuxbrew/lib/python3.8
.
Затем я обновил команду pip package-update до следующего:
python3 -m pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 python3 -m pip install -U
Кажется, это работает. Тем не менее, при открытии VS Code в правом нижнем углу всегда указывается, что «Путь к линтеру pylint недействителен», даже если путь существует:
USER:~/Desktop/Python/Scripts$ which pylint
/home/linuxbrew/.linuxbrew/bin/pylint
USER:~/Desktop/Python/Scripts$ which python
/usr/bin/python
USER:~/Desktop/Python/Scripts$ which python3
/home/linuxbrew/.linuxbrew/bin/python3
Далее, при выполнении python -скрипта в Код VS через Ctrl + Alt + P возникает следующая ошибка (вместе со всем выводом):
USER:~/Desktop/Python/Scripts$
/home/linuxbrew/.linuxbrew/bin/python3 -c "from IPython import start_ipython; start_ipython()" /home/cripts/Master/Import_export/AERMET/import_and_manip_sitespec_meteodata_AERMET.py
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/__init__.py in <module>
21 try:
---> 22 from . import multiarray
23 except ImportError as exc:
/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/multiarray.py in <module>
11
---> 12 from . import overrides
13 from . import _multiarray_umath
/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/overrides.py in <module>
6
----> 7 from numpy.core._multiarray_umath import (
8 add_docstring, implement_array_function, _get_implementing_args)
ModuleNotFoundError: No module named 'numpy.core._multiarray_umath'
During handling of the above exception, another exception occurred:
ImportError Traceback (most recent call last)
~/Dokumente/Allgemeines_material/Sonstiges/Programming/Python/Scripts/Master/Import_export/AERMET/import_and_manip_sitespec_meteodata_AERMET.py in <module>
40
41 import re
---> 42 import numpy as np
43 import pandas as pd
44 from tqdm import tqdm
/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/__init__.py in <module>
138 from . import _distributor_init
139
--> 140 from . import core
141 from .core import *
142 from . import compat
/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages/numpy/core/__init__.py in <module>
46 """ % (sys.version_info[0], sys.version_info[1], sys.executable,
47 __version__, exc)
---> 48 raise ImportError(msg)
49 finally:
50 for envkey in env_added:
ImportError:
IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!
Importing the numpy C-extensions failed. This error can happen for
many reasons, often due to issues with your setup or how NumPy was
installed.
We have compiled some common reasons and troubleshooting tips at:
https://numpy.org/devdocs/user/troubleshooting-importerror.html
Please note and check the following:
* The Python version is: Python3.8 from "/home/linuxbrew/.linuxbrew/opt/python@3.8/bin/python3.8"
* The NumPy version is: "1.19.0"
and make sure that they are the versions you expect.
Please carefully study the documentation linked above for further help.
Original error was: No module named 'numpy.core._multiarray_umath'
Тем не менее, numpy
уже обновлен:
USER:~/Desktop/Python/Scripts$ pip install numpy
Requirement already satisfied: numpy in /home/linuxbrew/.linuxbrew/lib/python3.8/site-packages (1.19.0)
Кроме того, в файле settings.json
из VS Code
я объявил, чтобы не рисковать, следующее:
"python.autoComplete.extraPaths": [
"/home/andylu/Dokumente/Allgemeines_material/Sonstiges/Programming/Python/Scripts",
"/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages",
"/home/linuxbrew/.linuxbrew/Cellar/python@3.8/3.8.3_2/lib/python3.8/site-packages"
]
В моем .bashr c - файле я уже обновил все безрезультатно:
# Link to own and official python scripts and packages
export PYTHONPATH=/home/andylu/Dokumente/Allgemeines_material/Sonstiges/Programming/Python/Scripts:/home/linuxbrew/.linuxbrew/lib/python3.8/site-packages:/home/linuxbrew/.linuxbrew/Cellar/python@3.8/3.8.3_2/lib/python3.8/site-packages
# Homebrew
export PATH="/home/linuxbrew/.linuxbrew/bin:$PATH"
Все эти проблемы застали меня врасплох, и я чувствую себя совершенно потерянным. Я хотел продолжить свой проект сегодня, но потратил уже 2 часа на inte rnet, обнаружив, что ни одно из предложенных решений не помогло мне, поэтому я начал эту проблему здесь.