如何使用virtualenvwrapper进行ckan开发?

时间:2012-06-16 20:15:59

标签: python virtualenv virtualenvwrapper ckan

使用virtualenvwrapper在CKAN项目上进行开发比从virtualenvwrapper introduction获得的简单工作流程复杂一点,即只需执行mkvirtualenv ckan,然后安装CKAN source install instructions CKAN进入你的virtualenv,然后攻击CKAN。

如果我正确理解virtualenvwrapper文档,最好使用mkproject ckan命令,以便在WORKON_HOME(默认情况下为~/.virtualenvs)中隐藏一个名为ckan的virtualenv漂亮,整洁的项目目录在您的PROJECT_HOME(我的机器上~/Projects)中称为ckan,其中只包含您实际正在处理的源代码存储库,并且不会混淆所有其他文件进入virtualenv。但是virtualenvwrapper的项目管理文档并不是很详细。

如果我执行mkproject ckan然后继续按照ckan源安装说明操作,则pip install --ignore-installed -e git+https://github.com/okfn/ckan.git#egg=ckan命令会在~/.virtualenvs/ckan/src/ckan而不是~/Projects/ckan目录中安装ckan git repo在哪里我想要它。如何让ckan git repo进入我的项目目录?

我也想要破解不同的CKAN扩展(其中一些来自他们自己独立的git repos)作为同一个virtualenvwrapper项目的一部分,所以我希望virtualenvwrapper在~/Projects/ckan中安装那些好。

1 个答案:

答案 0 :(得分:3)

我正在回答我自己的问题,以下似乎对我来说效果不错,但我认为这个答案可以通过自动执行我手动执行的所有git克隆和pip安装等来改进...

诀窍是稍微偏离ckan源安装说明并且git clone ckan'手动'进入项目目录,然后你需要执行额外的python setup.py develop命令将ckan安装到你的virtualenv中( pip install命令会为你处理这个):

> mkproject ckan

这会在WORKON_HOME/ckan创建一个ckan virtualenv,在PROJECT_HOME/ckan创建一个ckan项目目录,激活virtualenv,然后将cd转换为项目目录。到目前为止,virtualenv和项目目录是“空的”,还没有安装任何ckan。现在克隆ckan git repo:

(ckan)~/Projects/ckan> git clone git@github.com:okfn/ckan.git

这会将git repo克隆到~/Projects/ckan/ckan。此时ckan命令仍然不起作用,你已经克隆了git repo,但是你仍然没有在你的virtualenv中安装ckan:

(ckan)~/Projects/ckan> cd ckan
(ckan)~/Projects/ckan/ckan> python setup.py develop
在您还将ckan的依赖项安装到virtualenv中之前,

ckan命令仍然无法运行:

(ckan)~/Projects/ckan/ckan> pip install --ignore-installed -r requires/lucid_missing.txt -r requires/lucid_conflict.txt -r requires/lucid_present.txt
(ckan)~/Projects/ckan/ckan> pip install webob==1.0.8

现在,最后你可以运行ckan命令:

(ckan)~/Projects/ckan/ckan> paster make-config ckan development.ini
    (edit development.ini as necessary)
(ckan)~/Projects/ckan/ckan> paster serve development.ini
Starting server in PID 17356.
serving on 0.0.0.0:5000 view at http://127.0.0.1:5000

从现在开始,每次你想开始使用ckan进行开发时,你都可以运行workon ckan来激活你的ckan virtualenv并cd到你的ckan项目目录,然后去砍掉。

如果您还想破解CKAN扩展程序,例如ckanext-harvest,您可以将cit repo安装到ckan项目目录中,并与ckan git repo一起安装:

(ckan)~/Projects/ckan> git clone git@github.com:okfn/ckanext-harvest.git
(ckan)~/Projects/ckan> cd ckanext-harvest
(ckan)~/Projects/ckan/ckanext-harvest> python setup.py develop