У меня есть эта строка в Python скрипте "l xml .py": from lxml import html
. Когда я запускаю скрипт в базовой среде conda, он возвращает ImportError
:
(base) $ python lxml.py
Traceback (most recent call last):
File "lxml.py", line 2, in <module>
from lxml import html
File "/Users/max/Dropbox/WORK/python/projects/web_scraping/lxml.py", line 2, in <module>
from lxml import html
ImportError: cannot import name 'html' from 'lxml' (/Users/max/Dropbox/WORK/python/projects/web_scraping/lxml.py)
Однако, как ни странно, если я попробую команду from lxml import html
в оболочке Python, иногда она работает просто отлично и импортирует библиотеку, в то время как в других случаях она выдает ту же ошибку. Кажется, что он перестает работать в оболочке после того, как я пытаюсь запустить скрипт с помощью команды python
.
Редактировать: Хорошо, это действительно странно. Если я открываю терминал и запускаю import lxml
в оболочке Python, он работает каждый раз. Затем я запускаю скрипт lxml.py
и он выдает ошибку. Но потом, вот в чем дело, если я запускаю import lxml
в оболочке Python, он возвращает this :
Python 3.7.4 (default, Aug 13 2019, 15:17:50)
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import lxml
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/max/Dropbox/WORK/python/projects/web_scraping/lxml.py", line 2, in <module>
from lxml import html
ImportError: cannot import name 'html' from 'lxml' (/Users/max/Dropbox/WORK/python/projects/web_scraping/lxml.py)
Каким-то образом он «запоминает» скрипт, который я запускал ранее (wtf?).
Когда в базовой среде conda я проверяю, установлен ли пакет "l xml" (он есть):
(base) $ conda list | grep "lxml"
lxml 4.5.0 pypi_0 pypi
Затем я пытаюсь удалить это, но не может из-за PackagesNotFoundError
:
(base) $ conda remove lxml
Collecting package metadata (repodata.json): done
Solving environment: failed
PackagesNotFoundError: The following packages are missing from the target environment:
- lxml
В каталоге / pkgs нет файлов l xml:
(base) $ cd ~/opt/anaconda3/pkgs && ls | grep "lxml"
returns nothing
Вот соответствующий контент каталога site-packages
:
(base) $ cd ~/opt/anaconda3/lib/python3.7/site-packages && ls | grep "lxml"
lxml
lxml-4.5.0.dist-info
Я пытался установить пакет в другом окружении conda: та же проблема.
Не знаю, насколько это актуально, моя переменная PATH:
/Users/max/opt/anaconda3/bin:/Users/max/opt/anaconda3/condabin:/Users/max/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin
Кроме того, я сделал это:
(base) $ which python && python --version
/Users/max/opt/anaconda3/bin/python
Python 3.7.4
Кто-нибудь может мне помочь разобраться, что здесь происходит, черт возьми?