Невозможно импортировать установленную вручную библиотеку в Pycharm - PullRequest
0 голосов
/ 08 ноября 2018

Я пишу скрипт на python, который будет работать в AWS как лямбда-функция. Поскольку он должен подключаться к базе данных Postgres, требуется библиотека psycopg2. Кажется, стандарт psycopg2 не работает с AWS лямбда. Я скачал его с этого репозитория git .

Я использую virtualenv для всех зависимостей, поэтому я скопировал папку psycopg2-3.6 из загруженного пакета в [myproject]/env/Lib/site-packages. В моем основном скрипте эта библиотека импортирована

import psycopg2

Однако, когда я запускаю его в PyCharm, я получаю ошибку:

  File "C:\Users\dxx0111\WorkSpace\iq-iot-lambda\app.py", line 2, in <module>
    import psycopg2
  File "C:\Users\dxx0111\WorkSpace\iq-iot-lambda\env\lib\site-packages\psycopg2\__init__.py", line 50, in <module>
    from psycopg2._psycopg import (                     # noqa
ModuleNotFoundError: No module named 'psycopg2._psycopg'

Судя по сообщению об ошибке, похоже, что он смог найти каталог psycopg2 в папке пакета виртуальной среды. Он просто не мог найти psycopg2._psycopg. Что мне здесь не хватает?

1 Ответ

0 голосов
/ 09 ноября 2018

Оказывается, библиотека psycopg2, загруженная по этой ссылке, работает только в Amazon Linux, потому что именно там был скомпилирован пакет. Это не работает на моей машине с Windows. Чтобы это работало локально, мне пришлось установить с pip install psycopg2 в мою виртуальную среду. При развертывании в AWS Lambda я делаю zip с загруженной библиотекой. Такие разные psycopg2 на разных платформах. Теперь это работает в обоих местах.

...