我正在为我的一个讲座工作,我需要下载包psycopg2才能使用正在使用的postgresql数据库。不幸的是,当我尝试pip install psycopg2时会弹出以下错误:
ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command '/usr/bin/clang' failed with exit status 1
ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command '/usr/bin/clang' failed with exit status 1
有谁知道为什么会这样?是因为Sierra没有支持某些套餐吗?提前谢谢!
答案 0 :(得分:122)
我通过安装命令行工具
解决了这个问题xcode-select --install
然后通过Homebrew安装openssl并手动将我的自制软件安装的openssl链接到pip:
env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip install psycopg2
在macOS Sierra 10.12.1
上答案 1 :(得分:4)
使用pipenv install psycopg2遇到类似问题:
ld:找不到用于-lssl的库,'clang:错误:链接器命令 失败,退出代码为1(使用-v查看调用)',“错误: 命令'clang'失败,退出状态为1“,'
----------------------------------------',
我尝试了以上所有建议,但没有一个起作用。几个月前,我在另一个virtualenv中遇到了这个问题,并记得读过一些关于psycopg2 version issue的内容。因此,我尝试使用2.7.1和2.8.3进行安装,但两者均仍然失败。 2.7.7版本以某种方式起作用:
pipenv install psycopg2==2.7.7
希望我有时间对此进行深入研究,以了解实际情况。但是现在我不这样做了。
答案 2 :(得分:3)
安装/更新Xcode开发人员工具
xcode-select --install
查询postgres路径
find / -name pg_config 2>/dev/null
安装psycopg2,使用第2步中的路径。我的'/usr/local/Cellar/postgresql/9.5.0/bin/pg_config'
PATH=$PATH:/usr/local/Cellar/postgresql/9.5.0/bin/ pip install psycopg2
答案 3 :(得分:2)
好吧,很多不同的选项对我都不起作用,但最终!
首先,试试这个:
brew reinstall openssl
在重新安装过程结束时,您基本上会在 Caveats 部分中看到以下几行,因为我使用 macOS Big Sur(版本 11.1)和 zsh,因此我已将其放入 zshrc 配置文件中终端。
打开 zshrc 或其他特定于您系统的配置文件:
nano ~/.zshrc
在最后粘贴以下几行(或根据您的注意事项更改这些命令),请记住 Homebrew 提供的 OpenSSL 可能与系统的 OpenSSL 冲突(我'我收到警告说 macOS 提供了 LibreSSL)但它仍然运行良好:
export PATH="/opt/homebrew/opt/openssl@1.1/bin:$PATH"
export LDFLAGS="-L/opt/homebrew/opt/openssl@1.1/lib"
export CPPFLAGS="-I/opt/homebrew/opt/openssl@1.1/include"
保存文件并按 ^X 并按 是 确认退出。
希望您现在可以安装 psycopg2:
pip3 install psycopg2-binary
我仍然不确定问题的根本原因是什么,它只是在我尝试为我的项目重新安装 pipenv 时突然出现(可能是最近的一些系统更新)。
答案 4 :(得分:1)
这适用于我(在终端上):
find / -name pg_config 2>/dev/null
然后添加路径:
export PATH=$PATH:/Applications/Postgres.app/Contents/Versions/9.5/bin/
os版本:MacOs Sierra
我希望这会有所帮助。
答案 5 :(得分:1)
尝试通过以下方式安装它:
pip install psycopg2-binary
答案 6 :(得分:1)
brew install postgresql
如果存在postgresql,则运行:
brew upgrade postgresql
sudo pip install psycopg2
在venv中:
env LDFLAGS='-L/usr/local/lib -L/usr/local/opt/openssl/lib -L/usr/local/opt/readline/lib' pip install psycopg2==2.8.4
如果仅需要使用命令pip install psycopg2
导出macOSX中的路径:
export LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib"
答案 7 :(得分:1)
env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" \
brew upgrade openssl
然后我可以安装psycopg2
答案 8 :(得分:1)
尝试--pip安装psycopg2-binary
答案 9 :(得分:0)
看起来好像没有安装openssl软件包。尝试再次安装它和ID ELEMENT_TYPE POSITION LINE_NO VALIDATION ERROR
1 Field MSH.9.3 1 Component required
2 Field PID.7 2 Invalid date time format : '1957009'
3 Component PID.9.7 2 Invalid table entry value : '3216' for table Name Type
4 Component PID.9.7 2 Value '3216' length (4) exceed limit (1)
5 Component PID.11.6 2 Invalid table entry value : 'INDIA' for table Country Code
6 Component PID.11.6 2 Value 'INDIA' length (5) exceed limit (3)
7 Field PID.12 2 Field should not contain component(s)
8 Component PID.18.1 2 Field required but has no value.
9 Field ORC.5 4 Invalid table entry value : 'D' for table Order status
10 Component ORC.7.4 4 Invalid date time format : '20103102300'
11 Component ORC.7.5 4 Invalid date time format : '216061102300'
12 Field ORC.15 4 Invalid date time format : '201606310230'
13 Field OBR.14 5 Invalid date time format : '201208056'
14 Field OBR.22 5 Invalid date time format : '201280058'
15 SubComponent OBR.27.1.1 5 Invalid numeric format : 'R'
16 Component OBR.27.4 5 Invalid date time format : '2012070957'
17 Component OBR.32.2 5 Invalid date time format : 'VRNEY,SCT'
。我不是macos用户,但我相信brew
简化了该平台上的包管理。
您可能还需要安装Python开发和postgresql开发包。
答案 10 :(得分:0)
旧的,但是对于使用pipenv的人,我通过查看依赖图pipenv graph --reverse
并注意到它是psycopg2-binary==2.8.2
来解决此问题的。运行pipenv install psycopg2-binary
解决了该问题。
答案 11 :(得分:0)
我用以下方法修复了它:
brew reinstall openssl
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/
答案 12 :(得分:0)
如果您不想使用brew
,这是“仅限MacOS的解决方案”:
sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
此后,pip
将很高兴从源代码安装psycopg2
。可与“ Mojave”(macOS 10.14)一起使用。
答案 13 :(得分:0)
唯一对我有用的是:
sql_string='INSERT INTO {} '.format(column_name)
答案 14 :(得分:0)
尝试安装:
pip install psycopg2-binary
它有效
答案 15 :(得分:-3)
根据当前/当前情况- 唯一的解决方案是- 卸载python 3.8或3.9等 并安装ptyhon 3.7.4