Как использовать virtualenvwrapper для разработки ckan?

Использование virtualenvwrapper для разработки проекта CKAN немного сложнее, чем простой рабочий процесс, который можно получить с помощью virtualenvwrapper. введение, то есть просто выполните mkvirtualenv ckan, следуя инструкциям по установке исходного кода CKAN чтобы установить CKAN в вашу виртуальную среду, а затем взломать CKAN.

Если я правильно понимаю документацию virtualenvwrapper, лучше использовать команду mkproject ckan, чтобы у вас был виртуальный файл ckan, спрятанный в вашем WORKON_HOME (~/.virtualenvs по умолчанию), и красивый, аккуратный каталог проекта с именем ckan в вашем PROJECT_HOME (~/Projects на моей машине). ), который содержит только репозитории исходного кода, над которыми вы на самом деле работаете, и не перегружен всеми другими файлами, входящими в файл virtualenv. Но документы по управлению проектом для virtualenvwrapper не очень подробные.

Если я сделаю mkproject ckan, а затем продолжу следовать инструкциям по установке исходного кода ckan, команда pip install --ignore-installed -e git+https://github.com/okfn/ckan.git#egg=ckan установит репозиторий ckan git в ~/.virtualenvs/ckan/src/ckan, а не в мой каталог ~/Projects/ckan, где я этого хочу. Как сделать так, чтобы репозиторий ckan git находился в моем каталоге проекта?

Я также собираюсь взломать различные расширения CKAN (некоторые из которых находятся в отдельных репозиториях git) как часть одного и того же проекта virtualenvwrapper, поэтому я хочу, чтобы virtualenvwrapper также установил их в ~/Projects/ckan.


person Sean Hammond    schedule 16.06.2012    source источник


Ответы (1)


Я отвечаю на свой вопрос, нижеприведенное, кажется, сработало для меня достаточно хорошо, но я думаю, что этот ответ можно было бы улучшить, автоматизировав все клонирование git, установку pip и т. д., которые я делаю вручную...

Хитрость заключается в том, чтобы немного отклониться от инструкций по установке исходного кода ckan и git clone ckan в каталог проекта «вручную», затем вам нужно выполнить дополнительную команду python setup.py develop для установки ckan в ваш виртуальный окружение (команда pip install справится с этим за вас) :

> mkproject ckan

Это создает ckan virtualenv в WORKON_HOME/ckan и ckan каталог проекта в PROJECT_HOME/ckan, активирует virtualenv и cd в каталоге проекта. Пока виртуальный каталог и каталог проекта «пусты», нигде еще не установлен ckan. Теперь клонируйте репозиторий ckan git:

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

Это клонирует репозиторий git в ~/Projects/ckan/ckan. На данный момент команды ckan по-прежнему не будут работать, вы клонировали репозиторий git, но еще не установили ckan в свою виртуальную среду:

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

Команды ckan по-прежнему не будут работать, пока вы также не установите зависимости 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 и перейти в каталог проекта ckan, а затем взломать его.

Если вы также хотите взломать расширение CKAN, такое как ckanext-harvest, вы можете установить этот репозиторий git в каталог вашего проекта ckan вместе с репозиторием ckan git:

(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
person Sean Hammond    schedule 16.06.2012