因为 lz 本份工作和上一份工作都遇到了这个问题.相信论坛上一定也有遇到类似情况的同志.
想问一下如何解决.
ssh 远程调试的问题
本人 python 程序员.
1
neoblackcap 2019-01-23 13:52:19 +08:00 via iPhone
为什么你们修改代码不用进版本库?不用经过部署流程就发布?生产环境 hotfix ?有点厉害啊!
|
2
tomczhen 2019-01-23 13:55:56 +08:00 1
换家小公司。
当个开发+运维+客服全干工程师,别说服务器装个 GUI 跑下 IDE 调试,直接锁了服务器跑路都行。 |
3
chungzhao 2019-01-23 14:00:49 +08:00 5
https://spencerwoo.com/dowww/ - 在 Windows 上用 WSL 优雅开发
也可以考虑一下 |
4
luckychenhaha 2019-01-23 14:09:50 +08:00
vim 一把梭
|
5
www5070504 2019-01-23 14:11:32 +08:00
虚拟机呗 带界面的 ubuntu 不好用吗 直接在共享目录里调试 调试完了就可以从 windows 上传
|
6
zjsxwc 2019-01-23 14:14:27 +08:00
关键字:idea+sftp
|
7
realkenshinji 2019-01-23 14:18:06 +08:00
不带 GUI,那就 vim+tmux 咯
|
8
yidinghe 2019-01-23 14:19:35 +08:00
自己电脑上装个 Linux 桌面不就是了,公司提供的到底是什么?
|
9
CallMeReznov 2019-01-23 14:20:18 +08:00 1
|
10
axeojpwt 2019-01-23 14:25:10 +08:00
emacs 可以。
|
11
bumz 2019-01-23 14:25:58 +08:00
@CallMeReznov #9 不过为啥链接发的是过时的 fork 而不是原项目。。。
|
12
tomychen 2019-01-23 14:27:24 +08:00
大把的方法啊
win+ IDE -> push 到 linux win+ editor-> push 到 linux win+ VM-> push 到 Linux Linux Desktop -> push 到 Linux 还有终极 vim 大法 |
13
CallMeReznov 2019-01-23 14:31:41 +08:00
|
14
jmc891205 2019-01-23 14:44:05 +08:00
vim/emacs 呀
|
15
chinvo 2019-01-23 14:45:33 +08:00 via iPhone
你这意思是大公司就提供带 gui 的 Linux 服务器了?
要开发在本地开发,别乱搞服务器 |
16
quinoa42 2019-01-23 14:47:28 +08:00
ssh blabla -t tmux
|
17
likuku 2019-01-23 14:50:56 +08:00 via iPhone
学一下 vim/Emacs 不碍事,如学会骑自行车 /游泳,
一劳永逸,终身受益,还可以参与 /围观 vim vs Emacs 永不完结的互殴 |
18
Chingim 2019-01-23 15:07:49 +08:00 via Android
卧槽。。。想直接搞服务器
|
19
privil 2019-01-23 15:09:03 +08:00 2
运维听了想打人……服务器装 gui
|
20
ClutchBear 2019-01-23 15:10:24 +08:00 1
vagrant 了解一下
pychram 里面直接支持 vagrant 远程调试的. 启动 vagrant 后, pycharm 里面 python 解释器设置到 vagrant, 就可以了. vagrant 是操作的宿主 windows 的目录. |
21
fyibmsd 2019-01-23 15:10:30 +08:00
Xming 了解一下
|
22
liprais 2019-01-23 15:10:35 +08:00 1
wsl 那垃圾磁盘性能,能用?
|
23
sonyxperia 2019-01-23 15:10:44 +08:00
公司给你什么你就用什么
除非自己开公司 |
24
expy 2019-01-23 15:13:35 +08:00
是我阅读理解做不出来么?楼主哪里提到服务器上直接操作了?
|
25
pkookp8 2019-01-23 15:14:43 +08:00 via Android
世界上有三种编辑器。你说选哪种
vim emacs 其他 |
27
chinafeng 2019-01-23 15:16:37 +08:00
是我理解有问题吗,线上生产环境服务器一把梭?
|
28
boris1993 2019-01-23 15:27:00 +08:00 via Android
直接操服务器???这么牛逼的吗???
肯定是本地真机或者虚拟机装 Linux 啊 如果给你配的开发机没有 GUI 那就找领导、IT 啥的反映一波吧 |
29
daviswei 2019-01-23 15:33:55 +08:00
办公机的硬盘上划个三五十 G 空间,自己装个 linux,然后 grub 配一下,双系统不就皆大欢喜了
|
30
mason961125 2019-01-23 15:35:48 +08:00
python...这不 vagrant 一把梭就完事了?
|
31
yulgang 2019-01-23 15:40:05 +08:00
没太明白,服务器不装 GUI ?我们的也都不装 GUI,要调试在集成环境调。
如果确实需要在生产环境服务器上使用 GUI,可以在本地电脑上装个 x server,然后将它转发到服务器上就可以启动服务器上的图型界面的程序了,窗口出现在本地电脑上。 |
32
xpresslink 2019-01-23 15:41:18 +08:00
这个问题都要问还敢说是 Python 程序猿
|
33
xia0pia0 2019-01-23 15:46:25 +08:00
pycharm 配置远程环境运行及部署吧,应该能满足你的需求,自动 Push 代码以及运行、断点调式功能都可以的
|
35
ducklyl 2019-01-23 16:02:31 +08:00
服务器装 gui? gui 会占用服务器的性能,不可能这样干。
|
36
jetyang 2019-01-23 16:08:30 +08:00
ssh 登录到 Linux,Windows 上 ssh client 一大把,然后使用 vim 或 emacs 编程
|
37
xiaohanliang 2019-01-23 16:08:38 +08:00
Goland/IntelliJ/Clion -> Settings -> Build,Execution,Deployment -> Deployment -> 点击`+` 添加 SFTP server
|
38
ivechan 2019-01-23 16:09:01 +08:00
vim 大法好~
|
39
chaleaochexist OP @yidinghe windows 10 笔记本 和 linux 云主机.
|
40
lithiumii 2019-01-23 16:34:20 +08:00
python 啊,试试用 jupyter lab 敲代码,ssh 把 web ui 转发到本地
|
41
zzzhbooo 2019-01-23 16:38:02 +08:00
找个 sftp gui 客户端如 FileZilla,cyberduck,在本地使用顺手的编辑器打开 linux 服务器的文件
|
42
hovenrech 2019-01-23 16:38:25 +08:00
我是这么玩的:vscode,默认 terminal 用 WSL ;需要 Linux 编译就切换到 terminal 下敲命令,需要 windows 编译就用 vscode 的 recipe (这个我只用过 latex 默认的)
|
43
zzzhbooo 2019-01-23 16:48:09 +08:00
sftp 用到现在没遇到过代码同步错误的问题,即使公司服务器在美国,慢的时候 ssh 延迟好几秒。
使用 virtualenv 加 requirement.txt 来同步包有什么麻烦的 |
44
ranwu 2019-01-23 16:52:18 +08:00
你的笔记本操作系统换成 linux 不就行了?
|
45
jdhao 2019-01-23 16:52:44 +08:00
笨办法,在 Windows 上配置和服务器一样的环境,Windows 写代码,然后传到 Linux 上。
或者直接在 Linux 上把环境配好,使用 Vim 来写代码,不过需要好好配置一番,否则写代码还是不如 IDE 那么方便。 Python 开发的话,可以参考我的配置 https://jdhao.github.io/2018/09/05/centos_nvim_install_use_guide/ ,我也是在 Linux 服务器上写代码(无 GUI,深度学习模型,必须用有 GPU 的服务器)。 |
46
king2014 2019-01-23 16:55:58 +08:00
vagrant 代码同步有什么问题?
|
47
tabris17 2019-01-23 17:15:46 +08:00
顺路问问,VSCode 的 Language Server 远程调试究竟怎么用?
|
48
66beta 2019-01-23 17:25:12 +08:00 via Android
那么你的 Windows 电脑为什么不能装 Linux 呢?
|
49
chaleaochexist OP @zzzhbooo 偶尔会改包里面的源码.
|
50
xfspace 2019-01-23 17:40:50 +08:00 via Android
选择题
上 Linux 换 MacOS |
51
chaleaochexist OP @king2014 vagrant 本质还是一个 virtualbox.我拍脑袋猜也是 ssh 方式 调试吧?
|
52
zzzhbooo 2019-01-23 17:57:18 +08:00
@chaleaochexist 如果改了源码那这个包就相当于是你自己的包了,需要自己进行管理维护,和 pip 没有联系了
|
53
baicheng10 2019-01-23 18:01:40 +08:00
1 再买一台笔记本装 linux
2 手中笔记本搞个双系统 3 手中笔记本干掉 WIN 装 LINUX |
54
Asan 2019-01-23 19:29:48 +08:00 via Android
公司不配 Mac,我想在 Mac 上敲代码,然后我就用了自己的 Mac。这事儿有那么难吗?你自己在本儿上装个有 GUI 的 Linux 妥妥的。
|
55
youngxu 2019-01-23 19:32:03 +08:00 via Android
自己的需求,自己买电脑
|
56
weyou 2019-01-23 19:37:52 +08:00 via Android
服务器上安装 samba,共享目录映射到本地磁盘,跟在本地开发没啥两样
|
57
mason961125 2019-01-23 20:22:14 +08:00 via iPhone
@chaleaochexist vagrant 是直接把你本地的目录映射过去的,所以哪里有复制的问题?
|
58
xydche 2019-01-23 20:36:32 +08:00 via Android
hyper-v?
|
59
sunzongzheng 2019-01-23 21:28:34 +08:00
给你的笔记本不是随便你自己装系统?
|
61
king2014 2019-01-23 22:37:57 +08:00 via Android
@chaleaochexist 有文件共享映射,wondows 下直接调试 windows 下文件代码,浏览器直接显示效果,不需要进 ssh 到系统
|
62
scriptB0y 2019-01-23 22:39:08 +08:00
我只用 TUI 哈哈,我所有的开发工具都是 TUI 的。
|
63
sinxccc 2019-01-23 23:29:20 +08:00
呃,方法多的是啊…
1. 如果你能习惯 TUI 的话,ssh/mosh 到服务器上,然后 tmux/screen 外加 VIM/Emacs 随便你组合 2. 如果你能习惯开发工具在 Windows 上的移植版本的话,可以考虑 Emacs + tramp、share nfs/samba 分区的方式 3. 如果你就是想用 Linux 上的 GUI 工具,但是不纠结 WM 的话,可以 ssh X forwarding 或者 NoMachine 4. 如果你就是想用 Linux 上的 GUI 工具,而且希望连 WM 一起用的话,可以 VNC/NoMachine,ssh X forwarding 也能做到就是别扭了点。 |
64
Trim21 2019-01-24 00:32:17 +08:00 via Android
pycharm 远程调试运行基本跟本机体验一样啊,虽然本质上还是 ssh …
|
65
Trim21 2019-01-24 00:40:44 +08:00 via Android
顺便我记得如果有对应文件的写权限 pycharm 是可以直接改 pip 安装的第三方库的(用转到定义功能,跳到对应文件之后)
|
66
msg7086 2019-01-24 01:06:02 +08:00 1
关于主题的问题上面说了很多了我就不多说了。
我只想问,上面那么多层楼是怎么脑补出“服务器”这三个字的,或者“生产服务器”这五个字的? |
67
jorneyr 2019-01-24 08:07:26 +08:00
如果只是代码同步的话非常简单,搭建一个 git 私服,自己再写一个简单的 Socket 通讯程序,再创建几个 alias 命令,修改代码后执行命令:git 提交 push 到服务器,然后 Socket 通知编译运行端更新代码,编译端实时收到消息后执行 git 命令下载代码,执行编译命令,然后运行程序。
|
68
dychenyi 2019-01-24 09:20:42 +08:00
楼主估计不熟悉 vim。
不熟 vim 的话那么笔记本配置好就装 vm+gui linux。 或者自己带电脑装 gui linux。 解了。 |
69
ClutchBear 2019-01-24 09:43:27 +08:00 1
vagrant 不是同步代码的,
win 系统下就不安装 python. 所有开发都在 vagrant 里面, 哪里来的第三方库同步的问题. |
70
XxxxD 2019-01-24 10:20:42 +08:00
1,在来个电脑装 linux
2,window 上再装个 linux,我记得 win10 好像支持这个 |
71
rebackhua 2019-01-24 10:43:41 +08:00
linux samba 共享,windows mount 直接 gui 编辑,运行用 ssh
|
72
yoshiyuki 2019-01-24 10:59:19 +08:00
@neoblackcap 并没有文字说楼主公司提供的机器就是生产环境
|
73
qiukun 2019-01-24 12:18:40 +08:00
同步很麻烦,不过如果加一个约束,一次复制到本地,然后只在本地编辑,单向上传到服务器,就还行,textmate jetbrains' IDEs 都有相关功能。远程调试问题倒不大。
|
74
libook 2019-01-24 12:50:38 +08:00
如果 windows 机器是台式机,可以装虚拟机,免疫各种驱动问题。我曾经有一年多的时间是 Win10+VirtualBox+Arch,上班时间全屏办公,下班时间暂停虚拟机打游戏。。。
Windows 上可以用 Cygwin 装 XServer,我现在用 XServer 跑 WSL 的 GUI,不过不用于工作,只用于日常使用一些小工具,因为 WSL 的性能不是很好,跑重型 IDE 可能压力会比较大(我没试过)。 X 是可以在网络上用的,也就是说,你有一台 Linux 机器,可以直接把 GUI 传输到 Windows 机器上的 XServer 上展示,理论上可行,性能可能会比 WSL 好很多。https://askubuntu.com/questions/203173/run-application-on-local-machine-and-show-gui-on-remote-display 或者 VNC 也可以,简单方便,就是得找个顺手的 VNC 客户端。 X 和 VNC 原理不一样,X 是直接把 GUI 对象传递到 XService 上,由 XServer 来决定如何布局和展示; VNC 是先在本地渲染好界面,再投屏到远程客户端上; X 是 Linux 机主动推送到 Windows 机上,VNC 是 Windows 机主动去 Linux 上取画面。 |
75
tourist2018 2019-01-24 13:03:54 +08:00
macOS or 虚拟机
|
76
fy 2019-01-24 13:40:34 +08:00
把自己笔记本安装成 Linux,完事
|
77
chaleaochexist OP @ClutchBear 你好,所以,
1. 我们的 mysql server redis 等等也可以放到 vagrant 当中是吗? windows 宿主机里面什么都不需要了. 2. 我们 windows 中.只有项目代码.但是项目依赖的三方代码(就譬如 django 好了).我想在 pycharm 中直接修改 django,请问是否可行? |
78
chaleaochexist OP @mason961125
@king2014 @mason961125 你好,所以, 1. 我们的 mysql server redis 等等也可以放到 vagrant 当中是吗? windows 宿主机里面什么都不需要了. 2. 我们 windows 中.只有项目代码.但是项目依赖的三方代码(就譬如 django 好了).我想在 pycharm 中直接修改 django,请问是否可行? |
79
ClutchBear 2019-02-28 20:39:16 +08:00 1
@chaleaochexist #77
1: windows 宿主机只有一个 pycharm ide 而已, 当然代码也存到 windows 硬盘里面 2: 只要是项目代码里面有的都可以修改, 你说 python 目录里面 lib 的肯定需要 ssh 进入虚拟机修改 |
80
impressioncr 2019-03-26 18:00:29 +08:00
https://github.com/codercom/code-server
服务器上运行 vs code |