当我的开发系统(装有OS X 10.6的MacBook Pro(上未安装PostgreSQL时,是否可以将psycopg2
安装到virtualenv
中?
当我从virtualenv
中运行pip install psycopg2
时,我收到了如下所示的错误。
我正在尝试使用 Django 连接到服务器上的遗留数据库,如果可能的话,我不希望在我的开发系统上安装 PostgreSQL。
为什么不安装PostgreSQL?
我在使用自制软件安装 PostgreSQL 时收到错误。我的MacBook Pro上安装了Xcode4 - 而且只有Xcode4,我认为这与缺少gcc 4.0有关。但是,这是另一个StackOverflow问题的问题。
2011年4月12日上午8:37更新:我仍然想知道这是否可能,而无需在我的MacBook Pro上安装PostgreSQL。但是,我运行brew update
并强制重新安装 ossp-uuid brew install --force ossp-uuid
现在brew install postgresql
工作。成功安装 PostgreSQL 后,我能够从我的 virtualenv 中pip install psycopg2
。
来自pip install psycopg2
的错误
$ pip install psycopg2
Downloading/unpacking psycopg2
Running setup.py egg_info for package psycopg2
Error: pg_config executable not found.
Please add the directory containing pg_config to the PATH
or specify the full executable path with the option:
python setup.py build_ext --pg-config /path/to/pg_config build ...
or with the pg_config option in 'setup.cfg'.
Complete output from command python setup.py egg_info:
running egg_info
writing pip-egg-info/psycopg2.egg-info/PKG-INFO
writing top-level names to pip-egg-info/psycopg2.egg-info/top_level.txt
writing dependency_links to pip-egg-info/psycopg2.egg-info/dependency_links.txt
warning: manifest_maker: standard file '-c' not found
Error: pg_config executable not found.
Please add the directory containing pg_config to the PATH
or specify the full executable path with the option:
python setup.py build_ext --pg-config /path/to/pg_config build ...
or with the pg_config option in 'setup.cfg'.
----------------------------------------
Command python setup.py egg_info failed with error code 1
Storing complete log in /Users/matthew/.pip/pip.log
初步研究
以下是我作为初步研究阅读的文章:
- 安装 psycopg2 以在 OS X 上使用 Django 和 PostgreSQL
- 在 OS X 上安装 psycopg2
- 在 Ubuntu 上使用 psycopg2 和 virtualenv JauntyLucid
- Postgres, psycopg2, virtualenv install hints
apt-get install libpq-dev
帮助我在 Debian 挤压
来自评论:
apt-get install python-dev-is-python3
>psycopg 依赖于pg_config
命令,如果没有它,则无法安装 psycopg。
如果系统安装对您来说是一个问题,为什么不尝试编译PostgreSQL并在$PATH中包含生成的bin文件呢?喜欢:
export PATH=/path/to/compiled/postgresql/bin:"$PATH"
pip install psycopg2
brew install postgresql
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
pip3 install psycopg2
apt-get install libpq-dev
在 Debian 挤压中也帮助了我。之后做点安装psycopg2。当我在heroku上设置环境时pg_config我遇到了没有找到的问题,现在它工作正常。
您需要安装 python-dev
包才能使用 python 扩展,例如 psycopg2
。我不知道如何在 mac 中安装软件包,但我运行以下命令在我的 Ubuntu 机器上安装 python 软件包。
sudo apt-get install python-dev
或
sudo apt-get install python3-dev
如果你使用的是Python3.x。
安装完成后,在虚拟环境中运行以下命令。
pip install psycopg2
你不需要安装完整的PostgreSQL:你只需要客户端库。
我在MAC OSX中使用以下命令解决了它:
$ wget https://ftp.postgresql.org/pub/source/v9.5.3/postgresql-9.5.3.tar.bz2
$ tar xfv postgresql-9.5.3.tar.bz2
$ cd postgresql-9.5.3
$ ./configure
$ make
$ cd src/bin/pg_config
$ export PATH=`pwd`:"$PATH"
$ pip install psycopg2
使用pip install psycopg2-binary
,当pip install psycopg2
不起作用时,它对我有用。
使用您在 4 月 12 日更新中描述的方法,我能够安装 PostgreSQL(+1(。 请注意,我最初运行的是Python 2.7.1(32位(,自制软件抛出了几个关于使用32位版本的Python的错误和警告。 此后,我切换了 64/32 位版本的 2.7.1,它就像冠军一样工作。
关于pyscopg2,我能够通过编辑setup.cfg将其从源代码安装到我的虚拟环境中。 我pg_config设置为在自制软件的Cellar中更正路径(pg_config=/usr/local/Cellar/postgresql/9.0.4/bin/pg_config(。 保存更改后,我运行了python setup.py 安装,没有问题。 值得注意的是,我没有将Mac的默认python设置为32位。 我从头到尾都使用了新的 64 位。
在查看了一些文档后,我认为如果我将自制软件的 postgresql 路径添加到系统路径中,我可以使用 pip 来安装它。
参考:
http://favosdream.blogspot.com/2009/09/make-psycopg2-and-readline-work-in-snow.html
更新 6-8-2011:
在将OS X上编写的项目移植到Windows 7时,我发现我也必须在Windows上安装PostgreSQL。 这最终在我的启动屏幕上创建了另一个用户和其他我不喜欢的东西。 在做一些挖掘时,我在这里找到了PostgreSQL的Windows驱动程序。 此后,我卸载了完整的PostgreSQL并安装了ODBC驱动程序,到目前为止,这些驱动程序运行良好。
为了解决最初的问题,在进行了更多的挖掘之后,我想我在这里找到了适用于OS X的等效ODBC。 我没有机会尝试它们,但这个概念在 Windows 7 上效果很好。 当我有机会尝试它们时,我会更新它。 在那之前,我希望这有所帮助。
以上所有内容都对我不起作用(OS Catalina 10.15.1(
与古典postgres
和homebrew
版本存在冲突。请通过命令删除自制版本
$ brew uninstall postgresql
然后从官方网站安装:
$ sudo mkdir -p /etc/paths.d && echo /Applications/Postgres.app/Contents/Versions/latest/bin | sudo tee /etc/paths.d/postgresapp
对于一个简单的psycopg2
安装或django-heroku
包来说,这是实际的。
如果你最近更新了python或更改了默认的python(假设从3.6到3.8(。以下代码
sudo apt-get install python-dev OR sudo apt-get install python3-dev
将安装/工作在以前的 Python 版本。
因此,如果您希望此命令适用于最近更新/更改的 Python 版本,请尝试在命令中提及特定版本,例如 python3.8
sudo apt-get install python3.8-dev
尝试以上,如下
pip install wheel
export PATH=/path/to/compiled/postgresql/bin:"$PATH"
sudo apt-get install libpq-dev
sudo apt-get install python3.x-dev **Change x with your version, eg python3.8**
pip install psycopg2-binary
pip install psycopg2
由于我从不需要在此服务器上安装 postgresql 数据库,因此我在同一台服务器上运行 pip 安装 psycopg2 之前,我在 Ubuntu 14_04 版本上安装了以下库
apt-get install libpq-dev python-dev 然后在虚拟环境中执行 pip 安装 psycopg2。
输出 收集灵痞2 使用缓存的 psycopg2-2.6.1.tar.gz用于收集包裹的构建轮子:psycopg2 为psycopg2运行 setup.py bdist_wheel 存储在目录中:/root/.cache/pip/wheels/e2/9a/5e/7b620848bbc7cfb9084aafea077be11618c2b5067bd532f329成功建造 psycopg2安装收集的软件包:psycopg2已成功安装 psycopg2-2.6.1
您要求开发环境,但如果您在服务器上部署,请说 Heroku。只需在项目的要求中添加以下行.txt即可。
姜戈-希罗库==0.3.1
由于此软件包本身将在服务器部署上安装所需的软件包,例如 psycopg2。
尝试指定版本,它会起作用,在venv中执行此操作
pip install psycopg2-binary==2.8.6
我的经验,apt install libpq-dev
尝试在 venv 中安装psycopg2
将解决许多问题,但是有关更多信息,您可以参考此链接:https://www.psycopg.org/docs/install.html