我正在尝试为特拉维斯CI中的一些PL/Python过程设置CI。
我尝试过几种方法:
1)在我试图假设的遗留基础结构中,PL/Python已经安装,但没有成功:
The command "psql -U postgres -c 'CREATE EXTENSION plpythonu;'" exited with 1.
0.01s$ psql -U postgres -d test -c 'CREATE LANGUAGE plpythonu;'
ERROR: could not access file "$libdir/plpython2": No such file or directory 2)尝试在开头添加sudo apt-get update && sudo apt-get -y install postgresql-plpython-9.4命令。它也失败了,因为这个命令启动了PostgresSQL 9.4的替换,这已经安装在了Travis环境中。
3)还尝试在配置中使用以下行的基于容器的基础设施:
addons:
postgresql: "9.4"
apt:
packages:
- postgresql-plpython-9.4也没有成功。
在Travis CI中测试PL/Python过程的好方法是什么?
发布于 2015-08-10 01:24:10
我能够使用下面的python构建工作获得.travis.yml
sudo: required
language: python
before_install:
- sudo apt-get -qq update
- sudo /etc/init.d/postgresql stop
- sudo apt-get install -y postgresql-9.4
- sudo apt-get install -y postgresql-contrib-9.4 postgresql-plpython-9.4
- sudo -u postgres createdb test
- sudo -u postgres createlang plpython2u test
- sudo pip install jinja2
script:
- >
sudo -u postgres psql -d test -c 'CREATE OR REPLACE FUNCTION py_test()
RETURNS void LANGUAGE plpython2u AS $$
import jinja2
$$;'
- sudo -u postgres psql -d test -c 'SELECT py_test();'您的遗留配置尝试有很多问题,包括在安装9.4之前没有停止现有的PostgreSQL 9.1实例,以及没有正确地指定plpython语言。我相信一些命令也没有作为正确的用户运行。上述配置解决了所有问题。也许有一些方法可以改进这种配置,但是一旦我开始工作,我就停止了。
基于容器的配置无法工作,因为postgresql-plpython-9.4目前不在预先批准的软件包的白名单中。但是,postgresql-plpython-9.5是这样的,所以如果您想迁移到基于容器的配置,可以尝试遵循包审批流程 for postgresql-plpython-9.4,或者等待GA对PostgreSQL 9.5的释放,然后尝试迁移。
发布于 2015-08-10 21:00:40
现在我已经确认了我以前的评论已经被证实了.
正如特拉维斯博士中记录的那样,正确的安装方法是在before_install阶段更新您的依赖项(就像列表中的选项2)。
唯一的问题似乎是升级之前没有停止Postgres。
发布于 2015-07-30 08:05:12
我不知道具体的细节,但是,如果你把文件放在正确的地方,你可以从过程本身调用它。
import fileName.className或
import methodName from fileName.className编辑:我查了一下,把它放在和你正在运行的程序(cmd,空闲,等等)相同的目录中。并调用它,或将其放入文件夹并将文件夹名称添加到代码中。
例如:
import folder/fileName.ClassNamehttps://stackoverflow.com/questions/31717410
复制相似问题