Pycahrm远程调试Django项目
blog没几个人看,少了很多动力,不过为了锻炼自己的总结能力,加深自己的记忆,就算是写给自己看也要写下去。废话不多说,进入正题…
最近因为需要要把django项目部署到服务器端,又想在本地进行调试,发现了pycharm的远程调试的强大(不得不佩服jetbrains公司),网上搜出来的很多都是零散的,过程中也是踩了很多的坑,于是这里就来记录一下整个过程。 为了方便测试,这里使用的是virtual Box安装的ubuntu17.04。
一丶远程连接配置
首先需要配置的是ssh服务,ubuntu默认是没有安装openssh-server的,那就进入终端命令 sudo apt-get install openssh-server
然后查看ssh服务是否启动 ps -e|grep -ssh
如果看到sshd的进程就说明已经启动了,只有ssh-agent是没有启动的 然后手动去启动 sudo /etc/init.d/ssh start
ssh默认的访问端口是22,可以进入配置文件修改,这里就不多说了,如果修改后了直接进行重启 sudo /etc/init.d/ssh restart
这里就不使用证书的方式进行访问了,直接使用远程登录用户的方式 然后进入pycharm, File->Settings->Deployment可以看到如下界面
host填写服务器的公网ip,如果是用的虚拟机的话可以使用来查看ip ifconfig
这里可以使用root用户来连接,依次填入,然后就可以连接了,连接后选择项目在远程主机的根目录,可以直接新建一个。配置完成后,再去配置下Mappings,选择本地项目的根目录就可以了,最后不要忘了Apply。
现在就可以把项目直接上传到服务器端了,然后选中项目根目录(切记不是选中某个文件!) 然后点击Tools->Deployment->Upload Default server 这样的话项目就上传完成了。
二丶配置远程虚拟环境
既然是python项目,自然要用到virtualenv和virtualenvwrapper。 直接使用命令 pip3 install python3-virtualenv
如果安装失败的话,就使用 sudo apt-get install python3-virtualenv
然后安装virtualenvwrapper pip3 install virtualenvwrapper
安装完成后需要配置下环境变量 vim ~/.bashrc
然后把光标移动到最后一行,加入如下两行 export WORKON_HOME=$HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh
保存后重新加载一遍才会生效 source ~/.bashrc
这样的话虚拟环境的配置就完成了 然后可以使用 mkvirtualenv xxx #新建虚拟环境 workon xxx #进入虚拟环境
因为ubuntu下默认的python版本是python2.7的,这里要建python3的环境可以直接使用 mkvirtualenv Test --python=python3.5
接下来是安装项目的扩展包,因为我们之前只是将项目上传到服务器端,但是新建的虚拟环境扩展包为空,我们总不能一个个去安装吧, 这里我们可以把之前的扩展包全部写在一个test.txt文件中,然后进入虚拟环境后使用命令 pip3 install -r test.txt
如果安装速度慢的话,可以使用豆瓣源,这里就不多说了。 这些工作完成后, 然后进入Pycharm File->Setting->Project Interpreter,把项目环境改成远程服务器端的虚拟环境 点击设置按钮addRomte->SSH Credential,填入服务器端的相关信息,然后在ython interpreter path选择在服务器端建立好的虚拟环境,等待加载完成后Apply一下,这样准备工作就完成了。
三丶项目相关的配置
这里服务器端MySQL的配置就不多说了,这个基本百度出来的方法没什么问题, 把本地数据转移到服务器端可以直接使用Navicate for mysql的数据传输选项。
主要记录下django里settings文件的配置,之前在本地进行调试的时候DATABASES里面的host使用的localhost使用的是localhost或者127.0.0.1,但是放到服务器端后要把它修改为服务器的公网ip。 然后还要修改一下这个 ALLOWED_HOSTS = ['*']
这些都完成后再去Pycharm的Edit Confrgrations中,也就是项目运行的配置环境中修改一下Host,端口默认是8000和Python iterpreter为远程虚拟环境。 然后就可以直接在本地运行服务器端的项目。
这样的话使用Pycahrm进行远程调试的整体过程就完成了
评论 (0)