ImportError: нет модуля с именем psycopg2

При установке OpenERP 6 я хочу сгенерировать файл конфигурации с помощью этой команды,

cd / главная / openerp / openerp-server / bin /

./openerp-server.py -s --stop-after-init -c /home/openerp/openerp-server.cfg

Но всегда показывали сообщение

ImportError: No module named psycopg2

Когда я проверяю пакет psycopg2, он уже установлен,

Пакет python-psycopg2-2.4.5-1.rhel5.x86_64 уже установлен и последняя версия

Нечего делать

Что в этом плохого?

Мой сервер - CentOS, я установил python 2.6.7.


person ws_123    schedule 16.10.2012    source источник
comment
Вам нужно принять некоторые ответы на некоторые из ваших вопросов.   -  person John Lyon    schedule 16.10.2012
comment
Пакет устанавливается для python2.4. Если вы установили 2.6 вручную, вам также необходимо установить все остальные пакеты для 2.6.   -  person Keith    schedule 16.10.2012
comment
Выполните следующую команду, чтобы подтвердить системный путь python. $ python -c 'import sys; print sys.path'   -  person Taizo Ito    schedule 16.10.2012
comment
Не могли бы вы попробовать import psycopg2 на консоли Python?   -  person Nilesh    schedule 17.10.2012
comment
Если вы получили ответ, выберите ответ.   -  person Nilesh    schedule 03.12.2012


Ответы (17)


Шаг 1. Установите зависимости

sudo apt-get install build-dep python-psycopg2

Шаг 2. Запустите эту команду в своем виртуальном окружении.

pip install psycopg2-binary 

Ссылка: Фернандо Муньос

person Tarique    schedule 16.04.2014
comment
Это меня спасло! stackoverflow.com/questions/25169939/ - person aliteralmind; 07.08.2014
comment
Мне пришлось запустить easy_install psycopg2, но ваш вопрос привел меня туда! - person JcKelley; 03.11.2014
comment
Я обнаружил, что мне также нужно sudo apt-get install libpq-dev, так как у меня не установлен Postgresql на машине, на которой я пытаюсь установить psycopg2. - person Adam Parkin; 07.10.2015
comment
В Arch Linux это то же имя пакета: pacman -S python-psycopg2 - person Stephan Schielke; 30.06.2016
comment
Для пользователей Python3: установить libpq-dev postgresql - person alekwisnia; 28.11.2016
comment
В Kubuntu 16.04 опция build-dep не работает, но sudo apt-get install python-psycopg2 работает - person Mugoma J. Okomba; 16.02.2017
comment
в ubuntu 16.04 он показывает E: невозможно найти пакет build-dep - person Harun-Ur-Rashid; 25.09.2017
comment
Вы не можете использовать install и build-dep в одной команде. Это обе команды для apt-get. Должно быть sudo apt-get build-dep python-psycopg2 - person Bennett Garner; 08.11.2018

Используйте psycopg2-binary вместо psycopg2.

pip install psycopg2-binary

Или вы получите предупреждение ниже:

UserWarning: пакет psycopg2 wheel будет переименован в версии 2.8; чтобы продолжить установку из двоичного файла, используйте вместо этого команду «pip install psycopg2-binary». Подробнее см. http://initd.org/psycopg/docs/install.html#binary-install-from-pypi.

Ссылка: Выпущен Psycopg 2.7.4 | Psycopg

person Yan QiDong    schedule 26.02.2019
comment
спасибо, это помогло вместо других популярных ответов - person Aramis NSR; 06.02.2021
comment
Просто к сведению - если вы сопровождаете опубликованный пакет, зависящий от psycopg2, вам не следует использовать psycopg2-binary в качестве зависимости модуля, см. psycopg.org/docs/install.html#psycopg-vs-psycopg-binary - person Chad; 11.05.2021

Я столкнулся с той же проблемой и решил ее с помощью следующих команд:

sudo apt-get install libpq-dev
pip install psycopg2
person Safvan CK    schedule 17.04.2019
comment
Это исправило сообщение об ошибке You need to install postgresql-server-dev-X.Y ..., которое я получил после запуска sudo apt-get install build-dep python-psycopg2 (даже подумал, что у меня уже установлен postgresql). - person webelo; 13.09.2019

Попробуйте установить

psycopg2-бинарный

с pip install psycopg2-binary --user

person Y. Yazarel    schedule 30.09.2019
comment
Это единственный ответ, который у меня сработал с python 3.7.3 и django 3.0.2 - person Brian Joseph; 02.03.2020
comment
для чего нужен --user? - person Muhammad Inaam Munir; 28.03.2020
comment
@MuhammadInaamMunir --user : Install to the Python user install directory for your platform. Typically ~/.local/, or %APPDATA%\Python on Windows. Вы можете проверить дополнительную информацию, используя pip install --help. - person ibnǝꟻ; 13.11.2020

Пожалуйста, попробуйте запустить команду import psycopg2 в консоли python. Если вы получили сообщение об ошибке, проверьте sys.path, где python ищет модуль установки. Если родительский каталог python-psycopg2-2.4.5-1.rhel5.x86_64 находится в sys.path или нет. Если его нет в sys.path, запустите export PYTHONPATH=<parent directory of python-psycopg2-2.4.5-1.rhel5.x86_64> перед запуском сервера openerp.

person Nilesh    schedule 17.10.2012

Попробуйте с этим:

virtualenv -p /usr/bin/python3 test_env
source test_env/bin/activate
pip install psycopg2

запустите python и попробуйте импортировать, если вы настаиваете на его установке в своей системе, попробуйте python:

pip3 install psycopg2
person Cp Verma    schedule 20.10.2015

Недавно столкнулся с этой проблемой на моем производственном сервере. Я установил pyscopg2, используя

sudo pip install psycopg2

Он прекрасно работал на моем локальном компьютере, но заставил меня поработать на моем сервере ec2.

sudo python -m pip install psycopg2

Вышеупомянутая команда работала для меня там. Публикация здесь на всякий случай поможет кому-то в будущем.

person Aquarius    schedule 25.11.2018

Вам необходимо установить модуль psycopg2.

В CentOS: убедитесь, что установлен Python 2.7+. Если нет, следуйте этим инструкциям: http://toomuchdata.com/2014/02/16/how-to-install-python-on-centos/.

# Python 2.7.6:
$ wget http://python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz
$ tar xf Python-2.7.6.tar.xz
$ cd Python-2.7.6
$ ./configure --prefix=/usr/local --enable-unicode=ucs4 --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
$ make && make altinstall
$ yum install postgresql-libs

# First get the setup script for Setuptools:
$ wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py

# Then install it for Python 2.7 and/or Python 3.3:
$ python2.7 ez_setup.py

$ easy_install-2.7 psycopg2

Несмотря на то, что это вопрос CentOS, вот инструкции для Ubuntu:

$ sudo apt-get install python3-pip python-distribute python-dev
$ easy_install psycopg2

Цитируйте: http://initd.org/psycopg/install/.

person scarver2    schedule 05.12.2013
comment
Хм, получаю ez_setup.py is deprecated and when using it setuptools will be pinned to 33.1.1 - person Arthur; 08.11.2017

Для python3 на ubuntu это сработало для меня:

$sudo apt-get update
$sudo apt-get install libpq-dev
$sudo pip3 install psycopg2-binary
person Nicole Douglas    schedule 30.11.2020

Ошибка импорта в Mac OS

Если psycopg2 устанавливается, но вы не можете импортировать его в свой .py файл, то проблема заключается в libpq, его связях и библиотеке openssl, в которой libpq зависит от. Общие шаги воспроизводятся ниже. Вы можете проверить его шаг за шагом, чтобы узнать, что является для вас источником ошибки, а затем вы сможете устранить неполадки оттуда.

  • Проверьте установку openssl и убедитесь, что он работает.

  • Проверьте, не установлен ли libpq в вашей системе, возможно, он не был установлен или не связан. Если не установлен, установите его с помощью команды brew install libpq. Будет установлена ​​библиотека libpq. Согласно документации

libpq - это интерфейс C-приложения для программирования PostgreSQL. libpq - это набор библиотечных функций, которые позволяют клиентским программам передавать запросы на внутренний сервер PostgreSQL и получать результаты этих запросов.

  • Свяжите libpq с помощью brew link libpq, если это не сработает, используйте команду: brew link libpq --force.
  • Также поместите в свой .zshrc файл следующую строку
    export PATH="/usr/local/opt/libpq/bin:$PATH". Это создает все необходимые связи для libpq библиотеки.
  • Теперь перезапустите терминал или используйте следующую команду source ~/.zshrc.

  • Теперь используйте команду pip install psycopg2. Это будет работать. Это работает, даже если вы работаете в среде conda.

    Примечание. pip install psycopg2-binary следует избегать, потому что согласно разработчикам библиотеки psycopg2

Использование пакетов -binary в производственной среде не рекомендуется, поскольку в прошлом они оказались ненадежными в многопоточных средах. Возможно, это было исправлено в более поздних версиях, но мне так и не удалось воспроизвести сбой.

person riskdoctor    schedule 30.05.2021

У меня та же проблема, но только этот фрагмент решил мою проблему.

pip install psycopg2
person yts61    schedule 04.05.2020

Для Python3

Шаг 1. Установите зависимости

sudo apt-get install python3 python-dev python3-dev

Шаг 2: Установите

pip install psycopg2
person Walter Schweitzer    schedule 04.11.2018

проверьте правильно, включен ли ваш виртуальный env вашего объекта, если он выключен, включите его. выполнить следующие команды:

workon <your_env_name>
python manage.py runserver

Это работает для меня

person Soft Technoes    schedule 21.08.2019

Я столкнулся с той же проблемой и потратил почти день, чтобы решить эту проблему. Я сделал 2 вещи: 1 - используйте python 3.6 вместо 3.8 2 - измените версию django 2.2 (может работать немного выше, но я перехожу на 2.2)

Теперь все работает нормально

person KAMRAN    schedule 12.01.2020

Возникла та же проблема, когда я переключаюсь на ubuntu из Windows 10 ... у меня сработало следующее ... это после поиска в Google и попытки многочисленных предложений в течение 2 часов ...

sudo apt-get install libpq-dev, then pip3 install psycopg2

Надеюсь, это поможет кому-то, кто столкнулся с той же проблемой, особенно при переходе с ОС Windows на Linux (ubuntu).

person Richard Rosario    schedule 28.10.2020

Хорошо, ни один из ответов здесь не упоминает об этом, и мне потребовалось некоторое время, чтобы наткнуться на это на каком-то случайном веб-сайте. Пожалуйста, используйте:

pip3 install psycopg2

Это когда вы используете Python 3.5, вы можете проверить свою версию, запустив python -v в терминале.

person Husky931    schedule 16.04.2021

Решил проблему с помощью решения ниже:

  1. В основном проблема связана с файлом пакета Linux _bz2.cpython-36m-x86_64-linux-gnu.so. Попробуйте найти это место.

  2. Проверьте место установки python (какой python3) - пример: / usr / local / bin / python3

  3. скопируйте файл в INSTALL_LOCATION / lib / python3.6

cp -rvp /usr/lib64/python3.6/lib-dynload/_bz2.cpython-36m-x86_64-linux-gnu.so /usr/local/lib/python3.6
person PANDURANG BHADANGE    schedule 20.07.2021