1

使用 virtualenvwrapper 在 CKAN 项目上进行开发比您从virtualenvwrapper 介绍中获得的简单工作流程要复杂一些,即只需mkvirtualenv ckan按照CKAN 源安装说明将 CKAN 安装到您的 virtualenv 中,然后在 CKAN 上进行破解。

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

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

作为同一个 virtualenvwrapper 项目的一部分,我还想破解不同的 CKAN 扩展(其中一些在他们自己单独的 git 存储库中),所以我希望 virtualenvwrapper 也安装这些扩展~/Projects/ckan

4

1 回答 1

3

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

诀窍是稍微偏离 ckan 源安装说明并git clone“手动”将 ckan 安装到项目目录中,然后您需要执行一个附加python setup.py develop命令将 ckan 安装到您的 virtualenv 中(pip install 命令会为您处理这个):

> mkproject ckan

这将创建一个 ckan virtualenv atWORKON_HOME/ckan和一个 ckan 项目目录 at PROJECT_HOME/ckan,激活 virtualenv 和 cd 到项目目录中。到目前为止,virtualenv 和项目目录是“空的”,还没有安装 ckan。现在克隆 ckan git repo:

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

这会将 git 存储库克隆到~/Projects/ckan/ckan. 此时 ckan 命令仍然不起作用,您已经克隆了 git repo 但您还没有将 ckan 安装到您的 virtualenv 中:

(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,您可以将该 git 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
于 2012-06-16T20:16:00.340 回答