Странная проблема с пакетом conda: не могу импортировать, не могу удалить - PullRequest
1 голос
/ 05 марта 2020

У меня есть эта строка в 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

Кто-нибудь может мне помочь разобраться, что здесь происходит, черт возьми?

...