我正在尋找一種方法來簡化直接從PyCharm遠程部署Django應用程序。如何從PyCharm在遠程主機上運行部署命令?
即使部署文件本身只適用於遠程主機的文件並上傳,但我無法找到在服務器站點上運行附加命令的方式(如manage.py syncdb)。
我正在尋找一個完全自動化的解決方案,一個可以在單擊(或命令)下工作的解決方案。
我正在尋找一種方法來簡化直接從PyCharm遠程部署Django應用程序。如何從PyCharm在遠程主機上運行部署命令?
即使部署文件本身只適用於遠程主機的文件並上傳,但我無法找到在服務器站點上運行附加命令的方式(如manage.py syncdb)。
我正在尋找一個完全自動化的解決方案,一個可以在單擊(或命令)下工作的解決方案。
我對PyCharm的瞭解不多,所以也許你可以從IDE做些什麼,但我想你可能會想看一下Fabric項目(http://docs.fabfile.org/en /1.0.1/index.html)
這是一個非常棒的python部署自動化工具。
這是我的結構腳本文件之一。請注意,我做了很多假設(這是我自己使用的),完全取決於您想要如何設置您的項目,比如我使用virtualenv,pip和south以及我自己的個人偏好來指導如何部署和部署到的位置。
您可能希望重做或簡化它以滿足您的需求。
您可以使用文件>設置>工具>外部工具來運行任意的外部可執行文件。您可以編寫一個通過SSH連接的小命令併發出[set]命令。然後配置的工具將是可執行的
例如,在我的項目基於tornado,我運行的實例使用supervisord,根據answer here,代碼更改時無法重新啓動。
我最終在paramiko上寫了一個小工具,通過ssh連接並運行supervisorctl restart
。代碼如下:
import paramiko
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-s",
action="store",
dest="server",
help="server where to execute the command")
parser.add_option("-u",
action="store",
dest="username")
parser.add_option("-p",
action="store",
dest="password")
(options, args) = parser.parse_args()
client = paramiko.SSHClient()
client.load_system_host_keys()
client.connect(hostname=options.server, port=22, username=options.username, password=options.password)
command = "supervisorctl reload"
(stdin, stdout, stderr) = client.exec_command(command)
for line in stdout.readlines():
print line
client.close()
外部工具配置Pycharm:
<PYTHON_INTERPRETER>
<PATH_TO_SCRIPT> -s <SERVERNAME> -u <USERNAME> -p <PASSWORD>
你有沒有找到一個解決方案? –
嘿,你有沒有找到這個解決方案?我的意思是有沒有辦法在遠程主機上運行/重新運行進程?有些東西像'nohup python run.py&' – venuktan