使用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
中安装那些好。
答案 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