首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开发CKAN插件的开发环境

开发CKAN插件的开发环境
EN

Stack Overflow用户
提问于 2016-09-29 20:35:21
回答 3查看 449关注 0票数 1

我们将开始通过插件对CKAN进行合理的开发。

在为CKAN开发插件时,是否有任何CKAN开发人员的建议、提示、提示和/或技巧?

我们正在特别寻求帮助的内容如下:

关于如何在IDE中进行开发的建议(如PyCharm),以及如何将代码移动/部署到远程Vagrant (在那里我们将有正在运行的开发实例)。

如何使用WSGI在远程Vagrant实例中调试?有人使用IDE (如PyCharm)和WSGI进行远程调试吗?

那么一般来说,大多数CKAN开发人员是如何编程的呢?他们用Vi吗?他们在当地的机器上进行开发吗?他们是否使用远程VM(比如Vagrant/VirtualBox)?

我们已经尝试寻找任何人如何做CKAN插件开发,我们还未能找到任何有用的信息,任何友好的建议,将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-05-08 15:28:56

经过几年的尝试,我们终于让PyCharm能够使用我们的ckan/Vagrant环境。

我们多次尝试让本地的PyCharm实例与我们的来宾Vagrant对话,但对于开发人员来说,这似乎非常脆弱和混乱。

然后,我们团队中的一些人说出了这样的结论:“为什么我们不直接在Vagrant上安装PyCharm,然后使用x11转发来查看用户界面呢?”

这似乎是个好主意,而且对我们来说一直都很好。我们可以利用IDE和调试的所有优点来启动。耶!

我们是怎么做到的。你必须了解你的特定环境,并改变你在下面看到的东西,为你正在做的事情工作。您还需要处理您自己的PyCharm许可!

VagrantFile

代码语言:javascript
复制
# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|

  config.vm.box = "centos/7"

  # apache port
  config.vm.network "forwarded_port", guest: 5000, host: 5000, auto_correct: false
  # database port
  config.vm.network "forwarded_port", guest: 5432, host: 65432, auto_correct: false
  # solr port
  config.vm.network "forwarded_port", guest: 8080, host: 8080, auto_correct: false

  # For PyCharm
  config.ssh.forward_agent = true
  config.ssh.forward_x11 = true

  # Install PyCharm IDE via shell script
  config.vm.provision "shell", path: "install_pycharm.sh"

end

install_pycharm.sh

代码语言:javascript
复制
#!/bin/sh -e
set -x

cd /tmp
wget https://download.jetbrains.com/python/pycharm-professional-2017.3.1.tar.gz

tar -xvzf pycharm-professional-2017.3.1.tar.gz -C /tmp/

cp -r /tmp/pycharm-2017.3.1 /opt/pycharm

ln -s /opt/pycharm/bin/pycharm.sh /usr/local/bin/pycharm
ln -s /opt/pycharm/bin/inspect.sh /usr/local/bin/inspect

yum -y groupinstall "X Window System"

# Copy .Xauthority file from vagrant to ckan home
cp /vagrant/.Xauthority /usr/lib/ckan
chown ckan:ckan /usr/lib/ckan/.Xauthority

echo "==========================================="
echo "PyCharm will be installed in your Vagrant instance, but...."
echo "now you must run some manual steps to get PyCharm working:"
echo ""
echo " ssh into vagrant"
echo " This ssh will create your /home/vagrant/.Xauthority file, which you need to see the PyCharm GUI."
echo " Then you will need to copy this .Xauthority file to the ckan user to run PyCharm as ckan."
echo ""
echo " sudo cp /home/vagrant/.Xauthority /usr/lib/ckan"
echo " sudo chown ckan:ckan /usr/lib/ckan/.Xauthority"
echo " Set the DISPLAY variable for ckan user as it is set for vagrant when you do echo $DISPLAY: "
echo " export DISPLAY=localhost:11.0 "
echo " To start PyCharm run"
echo " pycharm "
票数 0
EN

Stack Overflow用户

发布于 2016-10-06 09:06:46

我在本地“内部”开发一个完整的CKAN开发安装。对于部署到远程生产服务器(在VM中,但我认为这与此无关),该服务器对于CKAN本身和每个扩展都有一个简单的git。当我推到其中任何一个repos时,就会触发一个post接收钩子,它会将头签出/usr/lib/ckan/default/src/并重新启动apache2。

这对于快速部署、保持代码同步和快速回滚非常有效;)。

这个设置由一些脚本作为补充,这些脚本可以偶尔与产品安装(DB、FileStore、SOLR索引)同步开发安装。

就我个人而言,我现在正在使用Emacs,我发现它比vim更容易搜索和导航代码,但是每个人都有自己的品味。

票数 2
EN

Stack Overflow用户

发布于 2016-09-30 08:55:07

我认为在ckan社区中最常见的方法是使用一个简单的文本编辑器(如vim )来编辑代码。就我个人而言,我现在使用的是崇高,我发现它比vim更容易搜索和导航代码,但是每个人都有自己的品味。

合成体 vim插件在ckan开发人员中很受欢迎,因为它确保代码符合PEP8,并将文本折返到79个字符,等等。但是大多数编辑器都有这样的插件。

熟悉Python (pdb)的调试确实很有帮助--这似乎是ckan最流行的选项。它学得很快,而且总是有效的。很多年前,我尝试过几个python调试器,发现它们不可靠,但现在可能已经解决了。

在ckan文件中打开调试模式以处理web异常,但有时在命令行调用ckan时,例如调试API调用时,我会关闭它。

要运行ckan,要么是linux机器,要么是流浪者/Virtual。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39779531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档