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


83

При установке 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.


25
Вам нужно принять некоторые ответы на некоторые другие ваши вопросы.
Джон Лайон

2
Пакет устанавливается для python2.4. Если вы установили 2.6 вручную, вам также необходимо установить все остальные пакеты для 2.6.
Кейт

Выполните следующую команду, чтобы подтвердить системный путь python. $ python -c 'import sys; print sys.path'
Taizo Ito

Не могли бы вы попробовать import psycopg2на консоли python?
Nilesh

Если вы получили ответ, выберите ответ.
Nilesh 03

Ответы:


106

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

sudo apt-get install build-dep python-psycopg2

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

pip install psycopg2 

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


2
Хорошо сработал для меня. Благодаря!
MRocklin

1
Мне пришлось бежать easy_install psycopg2, но ваш вопрос привел меня туда!
JcKelley 03

8
Для пользователей Python3: установкаlibpq-dev postgresql
alekwisnia

5
В Kubuntu 16.04 build-depопция не работает, но sudo apt-get install python-psycopg2работает
Мугома Дж. Окомба

4
в ubuntu 16.04 он показывает E: Невозможно найти пакет build-dep
Харун-Ур-Рашид

44

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

sudo apt-get install libpq-dev
pip install psycopg2

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

37

Используйте 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


16

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

psycopg2-бинарный

с участием pip install psycopg2-binary --user


Это единственный ответ , который работал для меня python 3.7.3иdjango 3.0.2
Brian Joseph

2
для чего нужен --user?
Мухаммад Инаам Мунир

1
@MuhammadInaamMunir --user : Install to the Python user install directory for your platform. Typically ~/.local/, or %APPDATA%\Python on Windows.Вы можете проверить дополнительную информацию, используя pip install --help.
fendiSetiawan

12

Пожалуйста, попробуйте запустить команду 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.


9

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

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

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

pip3 install psycopg2

3

Вам необходимо установить 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/.


Хм, получаюez_setup.py is deprecated and when using it setuptools will be pinned to 33.1.1
Артур

3

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

sudo pip install psycopg2

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

sudo python -m pip install psycopg2

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


2

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

pip install psycopg2


1

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

workon <your_env_name>
python manage.py runserver

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


1

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

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


1

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

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

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



Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.