我们将开始通过插件对CKAN进行合理的开发。
在为CKAN开发插件时,是否有任何CKAN开发人员的建议、提示、提示和/或技巧?
我们正在特别寻求帮助的内容如下:
关于如何在IDE中进行开发的建议(如PyCharm),以及如何将代码移动/部署到远程Vagrant (在那里我们将有正在运行的开发实例)。
如何使用WSGI在远程Vagrant实例中调试?有人使用IDE (如PyCharm)和WSGI进行远程调试吗?
那么一般来说,大多数CKAN开发人员是如何编程的呢?他们用Vi吗?他们在当地的机器上进行开发吗?他们是否使用远程VM(比如Vagrant/VirtualBox)?
我们已经尝试寻找任何人如何做CKAN插件开发,我们还未能找到任何有用的信息,任何友好的建议,将不胜感激。
发布于 2018-05-08 15:28:56
经过几年的尝试,我们终于让PyCharm能够使用我们的ckan/Vagrant环境。
我们多次尝试让本地的PyCharm实例与我们的来宾Vagrant对话,但对于开发人员来说,这似乎非常脆弱和混乱。
然后,我们团队中的一些人说出了这样的结论:“为什么我们不直接在Vagrant上安装PyCharm,然后使用x11转发来查看用户界面呢?”
这似乎是个好主意,而且对我们来说一直都很好。我们可以利用IDE和调试的所有优点来启动。耶!
我们是怎么做到的。你必须了解你的特定环境,并改变你在下面看到的东西,为你正在做的事情工作。您还需要处理您自己的PyCharm许可!
VagrantFile
# -*- 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"
endinstall_pycharm.sh
#!/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 "发布于 2016-10-06 09:06:46
我在本地“内部”开发一个完整的CKAN开发安装。对于部署到远程生产服务器(在VM中,但我认为这与此无关),该服务器对于CKAN本身和每个扩展都有一个简单的git。当我推到其中任何一个repos时,就会触发一个post接收钩子,它会将头签出/usr/lib/ckan/default/src/并重新启动apache2。
这对于快速部署、保持代码同步和快速回滚非常有效;)。
这个设置由一些脚本作为补充,这些脚本可以偶尔与产品安装(DB、FileStore、SOLR索引)同步开发安装。
就我个人而言,我现在正在使用Emacs,我发现它比vim更容易搜索和导航代码,但是每个人都有自己的品味。
发布于 2016-09-30 08:55:07
我认为在ckan社区中最常见的方法是使用一个简单的文本编辑器(如vim )来编辑代码。就我个人而言,我现在使用的是崇高,我发现它比vim更容易搜索和导航代码,但是每个人都有自己的品味。
合成体 vim插件在ckan开发人员中很受欢迎,因为它确保代码符合PEP8,并将文本折返到79个字符,等等。但是大多数编辑器都有这样的插件。
熟悉Python (pdb)的调试确实很有帮助--这似乎是ckan最流行的选项。它学得很快,而且总是有效的。很多年前,我尝试过几个python调试器,发现它们不可靠,但现在可能已经解决了。
在ckan文件中打开调试模式以处理web异常,但有时在命令行调用ckan时,例如调试API调用时,我会关闭它。
要运行ckan,要么是linux机器,要么是流浪者/Virtual。
https://stackoverflow.com/questions/39779531
复制相似问题