2012-06-16 36 views
1

在CKAN项目上使用virtualenvwrapper进行开发要比从virtualenvwrapper introduction获得的简单工作流程复杂一点,也就是在执行mkvirtualenv ckan之后,CKAN source install instructions将CKAN安装到您的virtualenv中,然后在CKAN上进行攻击。如何使用virtualenvwrapper进行ckan开发?

如果我理解正确的virtualenvwrapper文档,它的更好,让你有一个名为CKAN的virtualenv在WORKON_HOME(默认~/.virtualenvs),并呼吁CKAN一个漂亮,整洁的项目目录中隐藏起来使用mkproject ckan命令你PROJECT_HOME(我的机器上的~/Projects)仅包含您实际正在处理的源代码回购,并且不会与进入virtualenv的所有其他文件混杂在一起。但是,项目管理文档的virtualenvwrapper是不是很详细..

如果我做mkproject ckan,然后继续按照CKAN源安装指示,pip install --ignore-installed -e git+https://github.com/okfn/ckan.git#egg=ckan命令安装CKAN混帐回购协议在~/.virtualenvs/ckan/src/ckan,而不是我的~/Projects/ckan dir其中我想要它。如何让ckan git repo在我的项目目录中?

我也要去想破解不同CKAN扩展名(其中一些进来自己单独的git回购)作为同一virtualenvwrapper项目的一部分,所以我想virtualenvwrapper安装那些~/Projects/ckan为好。

回答

3

我正在回答我自己的问题,下面似乎对我来说工作得不错,但我认为这个答案可以通过自动化所有git克隆和pip安装等手动完成...

诀窍是稍微偏离ckan源代码安装说明并将 ckan插入项目目录'手动',然后您需要额外执行python setup.py develop命令将ckan安装到您的virtualenv中(pip install命令将处理此操作为你):

> mkproject ckan 

这创建一个ckan virtualenv WORKON_HOME/ckan和ckan项目目录PROJECT_HOME/ckan,激活virtualenv和cd到项目目录中。到目前为止,virtualenv和project dir是'空'的,现在还没有安装ckan。现在克隆CKAN混帐回购协议:

(ckan)~/Projects/ckan> git clone [email protected]:okfn/ckan.git 

这将克隆的git回购协议~/Projects/ckan/ckan。此时CKAN命令仍然无法工作,你已经克隆了git的回购,但你还没有安装CKAN到您的virtualenv:

(ckan)~/Projects/ckan> cd ckan 
(ckan)~/Projects/ckan/ckan> python setup.py develop 

CKAN命令仍然将无法​​正常工作,直到你也安装CKAN的依赖到你的virtualenv:从现在起

(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)~/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上开发,你可以运行workon ckan来激活你的ckan virtualenv并cd到你的ckan项目目录,然后破解。

如果你也想破解一个CKAN扩展名,例如ckanext收获,您可以安装git仓库到你的项目CKAN目录旁边的CKAN混帐回购协议:

(ckan)~/Projects/ckan> git clone [email protected]:okfn/ckanext-harvest.git 
(ckan)~/Projects/ckan> cd ckanext-harvest 
(ckan)~/Projects/ckan/ckanext-harvest> python setup.py develop