Установка pip с помощью --no-cache-dir и --target

Я пытаюсь создать лямбда-функцию AWS, которая будет запускать скрипт на python, и он должен использовать python2.7 (потому что я не могу заставить его работать с python3). Я пытаюсь собрать пакет зависимостей для моего скрипта, который включает в себя красивый суп, но я продолжаю сталкиваться с сообщением об ошибке:

ImportError: No module named html.entities

Я нашел источник ошибки ( https://docs.python.org/2.7/library/htmllib.html - этот модуль был переименован в переключателе с 2 на 3), и я нашел решение, которое заставит это работать без этой ошибки на моем компьютере. Если я просто бегу pip install --upgrade --no-cache-dir beautifulsoup4тогда я могу бежать python2.7 master.py и работает без ошибок. Но проблема возникает, когда я пытаюсь создать этот пакет зависимостей. я бегу pip install --upgrade --no-cache-dir beautifulsoup4 --target . и пакеты, которые я хочу, отображаются в каталоге, но затем, когда я снова запускаю скрипт, он получает ту же ошибку, что и раньше:

/home/user/.../tempStorage/bs4/element.py:16: UserWarning: The soupsieve package is not installed. CSS selectors cannot be used.
  'The soupsieve package is not installed. CSS selectors cannot be used.'
Traceback (most recent call last):
  File "master.py", line 10, in <module>
    from bs4 import BeautifulSoup
  File "/home/user/.../tempStorage/bs4/__init__.py", line 34, in <module>
    from .builder import builder_registry, ParserRejectedMarkup
  File "/home/user/.../tempStorage/bs4/builder/__init__.py", line 7, in <module>
    from bs4.element import (
  File "/home/user/.../tempStorage/bs4/element.py", line 19, in <module>
    from bs4.dammit import EntitySubstitution
  File "/home/user/.../tempStorage/bs4/dammit.py", line 13, in <module>
    from html.entities import codepoint2name
ImportError: No module named html.entities

Кажется, что разница в том, что на этот раз он использует зависимости, установленные в каталоге, в котором он находится, а не где-то еще на моей машине, и, к сожалению, мне нужно иметь возможность работать с этими каталогами в этом каталоге. Любая помощь будет оценена.

РЕДАКТИРОВАТЬ:

Немного больше информации. Когда я бегу python2.7 -c "import bs4 ; print(bs4.__version__)" из каталога, куда я помещаю пакеты зависимостей (с помощью команды --target), я получаю

bs4/element.py:16: UserWarning: The soupsieve package is not installed. CSS selectors cannot be used.
  'The soupsieve package is not installed. CSS selectors cannot be used.'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "bs4/__init__.py", line 34, in <module>
    from .builder import builder_registry, ParserRejectedMarkup
  File "bs4/builder/__init__.py", line 7, in <module>
    from bs4.element import (
  File "bs4/element.py", line 19, in <module>
    from bs4.dammit import EntitySubstitution
  File "bs4/dammit.py", line 13, in <module>
    from html.entities import codepoint2name
ImportError: No module named html.entities

и когда я запускаю ту же команду из другого каталога (я просто пошел в cd .. в этом случае) я получаю

4.4.1

0 ответов

Другие вопросы по тегам