我第一次尝试与其他几个网站建立网站,并且在尝试使用Django / Python / VirtualEnv时遇到了一个奇怪的错误。我已经为其他操作系统找到了解决这个问题的方法,比如Ubuntu,但是找不到适合Mac的好解决方案。
这是正在运行的相关代码:
virtualenv -p python3 venv
source venv/bin/activate
pip install -r requirements.txt
运行该块后,我收到以下错误:
的AssertionError
django-toolbelt的构建轮失败 为psycopg2运行setup.py bdist_wheel
...
的AssertionError
psycopg2的构建轮失败 无法构建django-toolbelt psycopg2
我相信我已经安装了“django-toolbelt”和“psycopg2”,所以我不确定它为什么会失败。
我能想到的唯一区别是我没有使用命令
sudo apt-get install libpq-dev
按照Ubuntu用法的指示,因为我相信用brew安装postgresql会处理标题。
感谢您的帮助或见解!
答案 0 :(得分:40)
我在Arch linux上遇到了同样的问题。我认为这不是操作系统依赖的问题。无论如何,我通过找到过时的包并更新然后来解决这个问题。
pip uninstall psycopg2
pip list --outdated
pip install --upgrade wheel
pip install --upgrade setuptools
pip install psycopg2
希望这会有所帮助...
答案 1 :(得分:26)
对于MacOS用户
尝试了所有上述方法(在MacOS 10.14上对我不起作用)后,该方法起作用了:
brew install openssl
安装openssl。LIBRARY_PATH
:export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/
pip3 install psycopg2
安装psycopg2 答案 2 :(得分:14)
对于Mac OS X用户:
<强> 1。首先在终端中运行以下命令检查postgresql路径:
pg_config
如果此操作失败,请查找如何将pg_config添加到路径中。
<强> 2。接下来通过在终端中运行此命令来安装Xcode Tools:
xcode-select --install
如果你现在已经解决了这两个问题,请尝试再次安装psycopg2
答案 3 :(得分:6)
如果您不习惯安装Python C扩展,并且psycopg2
不是您工作的核心部分,请尝试
pip install psycopg2-binary
psycopg2是C扩展名,因此在被pip安装时需要编译。 docs的“构建先决条件”部分说明了必须进行哪些操作才能通过pip进行安装。总结(对于psycopg 2.8.5):
libpq
头文件pg_config
程序(通常带有libpq
标头)并在$PATH
上。 满足这些先决条件后,pip install psycopg2
应该成功。
或者,pip
可以安装pre-compiled binaries,因此不需要编译(和相关的设置)。它们可以这样安装:
pip install psycopg2-binary
文档指出
psycopg2-binary软件包供初学者使用Python和PostgreSQL,而无需满足构建要求。
但是我建议psycopg2-binary
对于本地开发工作来说通常足够好,如果您不是直接使用psycopg2而是作为依赖项的话。
阅读内容丰富的installation documentation,不仅可以解决安装问题,还可以了解在某些情况下使用预编译的二进制文件的影响。
答案 4 :(得分:5)
在OS X上,我只需通过在安装psycopg2之前升级滚轮来解决这个问题:
pip install --upgrade wheel
答案 5 :(得分:5)
对于MacOS用户,this问题具有正确的解决方案:
必要时安装命令行工具:
xcode-select --install
然后
env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip install psycopg2
答案 6 :(得分:4)
我也遇到了同样的错误。 使用Python 3.7.3和pip 19.1.1。
我使用了以下命令。
pip install psycopg2-binary==2.8.3
答案 7 :(得分:3)
对于OSX Sierra用户,似乎xcode更新是解决方案:Can't install psycopg2 package through pip install... Is this because of Sierra?
答案 8 :(得分:3)
我尝试了上述所有解决方案,但它们对我不起作用。我所做的是将我的requirements.txt文件中的psycopg2版本从psycopg2==2.7.4
更改为psycopg2==2.7.6
答案 9 :(得分:1)
您的错误消息是否完整?无法从pip在mac上安装psycopg2的最常见原因是pg_config不在路径中。 顺便说一句,使用macports或fink来安装psycopg2是更值得推荐的方式,所以你不必担心pg_config,libpq-dev和python-dev。
加,是否使用Python 3.5?然后将你的车轮升级到&gt; 0.25.0使用pip。
答案 10 :(得分:1)
尝试安装sudo apt-get install python3.7-dev
或者您可以尝试安装其他开发库
sudo apt-get install python3.7 python-dev python3.7-dev \
build-essential libssl-dev libffi-dev \
libxml2-dev libxslt1-dev zlib1g-dev \
python-pip
答案 11 :(得分:1)
我遇到了同样的问题,这似乎是莫哈韦问题,我可以通过以下方式解决:
sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
答案 12 :(得分:1)
我在几个包装上都有此问题,包括psycopg2,numpy和pandas。我只是从requirements.txt文件中删除了该版本,然后就可以了。
所以我没有 psycopg2-binary == 2.7.6.1 。
答案 13 :(得分:0)
我遇到了同样的问题,但是上面的答案对我不起作用。 这就是我在requirements.txt中所做的 psycopg2-binary == 2.7.6.1 ,它工作正常
答案 14 :(得分:0)
我知道您要开发环境,但是如果要在服务器上部署,请说Heroku。只需在项目的 requirements.txt 中添加以下行即可。
django-heroku == 0.3.1
由于此软件包本身将在服务器部署中安装所需的软件包,例如 psycopg2 。因此,让服务器(heroku)负责吧。
答案 15 :(得分:-2)
仍然出现相同的错误。
我正在尝试在python3.7上安装pyflux并收到“建筑轮子失败”的错误
Command "/usr/local/opt/python/bin/python3.7 -u -c "import setuptools, tokenize;__file__='/private/var/folders/my/j2x0d1_x43gg2p137mhdcg4c0000gp/T/pip- install-nnztafuf/pyflux/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /private/var/folders/my/j2x0d1_x43gg2p137mhdcg4c0000gp/T/pip-record-kk6dncw5/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/var/folders/my/j2x0d1_x43gg2p137mhdcg4c0000gp/T/pip-install-nnztafuf/pyflux/
我的车轮已更新