运行CREATE EXTENSION plpython3u给我错误:找不到指定的模块。即使文件位于正确的位置。
阅读完网络上的所有内容后,我尝试按照建议下载另一个python版本(3.2)并替换dll ...
现在,我收到有关缺少的魔术块的错误:缺少的魔术块提示:使用PG_MODULE_MAGIC宏需要扩展库。
我尝试使用32位和64位版本的Postgresql进行相同的处理,但都失败,就像解释的那样...
有什么解决方案可以在Windows 64位OS上安装该PLPython?
我正在尝试在我的Postgres 9.1中安装plpython但它崩溃了服务器:
postgres@dataserver1:~> /opt/postgres/9.1/bin/psql -d mydb
psql.bin (9.1.4)
Type "help" for help.
mydb=# create language 'plpythonu';
The connection to the server was lost. Attempting reset: Failed.
Run Code Online (Sandbox Code Playgroud)
我安装了python 2.6.8并且在系统中声明了处理程序:
select tmplname, tmplhandler, tmpllibrary from pg_pltemplate where tmplname like 'plpython%'
"plpythonu" | "plpython_call_handler" | "$libdir/plpython2"
"plpython2u" | "plpython2_call_handler" | "$libdir/plpython2"
Run Code Online (Sandbox Code Playgroud)
并且处理程序安装在$ libdir中:
postgres@dataserver1:~> ll /opt/postgres/9.1/lib/postgresql/plpython*
-rwxr-xr-x 1 root root 6686333 Aug 17 14:27 /opt/postgres/9.1/lib/postgresql/plpython2.so
Run Code Online (Sandbox Code Playgroud)
关于此的任何线索都是贬值的
编辑
我试过创建扩展plpythonu,plpython2u和plpython3u,所有这些都崩溃了服务器.
在文档中阅读一点我发现\ dx命令列出已安装的扩展:
mydb=# \dx
List of installed extensions
Name | Version | Schema | Description …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Windows 机器上的 postgres 服务器上安装 plpython。当我CREATE EXTENSION plpython3u;在 postgres 中发出命令时,出现以下错误,我正在尝试查找其来源。
ERROR: could not load library "C:/Program Files/PostgreSQL/9.3/lib/plpython3.dll": The specified module could not be found.
Run Code Online (Sandbox Code Playgroud)
该文件存在,我认为这意味着 Windows 找不到它所依赖的文件之一。当我用Dependency Walker打开plpython3.dll 时,它告诉我它无法找到 GPSVC.dll。
这个丢失的dll是否可能导致CREATE EXTENSION命令失败?我在 C:\Windows\System32 中找到了一个同名的 .dll 并将其复制到 C:\Windows\SysWOW64,但这并没有解决问题,虽然依赖步行者现在找到了 .dll,但它引发了其他几个有关具有不同 CPU 类型的模块的错误。
是否可以从函数中调用plpgsql function(或任何PostgreSQL function)PL/Python?
所以,像这样:
CREATE FUNCTION somefunc() RETURNS void AS $$
DECLARE
...
BEGIN
...
END;
$$ LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)
然后在这里使用它
CREATE FUNCTION pythonFunc() RETURNS void AS $$
...
someFunc() #postgreSQL function
...
$$ LANGUAGE plpythonu;
Run Code Online (Sandbox Code Playgroud) 我正在使用 postgres 9.3 和 Python 2.7。
在 plpython 函数中,我想执行返回布尔值的查询。我怎样才能得到布尔结果?
例如:
result = plpy.execute('select 1<2 ')
Run Code Online (Sandbox Code Playgroud) 我有一个 Postgresql 9.1 服务器,我想在 Python 上编写一些函数。
有两种方法:plpy或psycopg2。对我来说,在 plpy 中编写函数就像噩梦,很多“准备”和“执行”方法......使用起来更舒服psycopg2,但我关心效率。
在服务器上使用 psycopg2 是否正确?