有了 Linux 子系统, Windows 作为 Java + Python 的开发环境时机是否成熟? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
kyrre
V2EX    程序员

有了 Linux 子系统, Windows 作为 Java + Python 的开发环境时机是否成熟?

  •  
  •   kyrre 2018-06-15 17:47:23 +08:00 11087 次点击
    这是一个创建于 2682 天前的主题,其中的信息可能已经有所发展或是发生改变。
    首先,各位大佬不要推荐 Mac,我用了 10 年了,不需要洗脑了。大家就事论事。
    也不用推荐虚拟机方式,不喜欢。

    尝试过在 windows10 上装 WLS,但感觉不是很方便,当时项目紧张,就没花心思去折腾,直接用 BitBash 认怂。
    然后各种不爽,特别是字符集导致的各种乱码。

    过了一年,现在的 Windows10 里的 Linux 据说支持的更多了?不光是 Ubunut 了?
    有谁驯服了的,好心分享一下。
    第 1 条附言    2018-06-15 21:15:00 +08:00
    下午试了一把,发现还是不爽。尤其是两个系统间共享文件,太蛋疼。

    默认进入的 linux home 目录在 windows 文件系统里没找到。Windows 的目录虽然能够通过 /mnt/盘符 /的方式定位到,但文件模式是 777,系统洁癖的我表示无法忍受。

    目前给我的感觉是还不如 git bash。
    64 条回复    2018-06-21 11:19:28 +08:00
    kingname
        1
    kingname  
       2018-06-15 17:56:42 +08:00 via iPhone
    你试一试配置配置 mysql-python 你就知道成熟不成熟了
    vale666
        2
    vale666  
       2018-06-15 17:58:58 +08:00   1
    你说的 BitBash 是指 git-bash 吗?
    heimeil
        3
    heimeil  
       2018-06-15 17:59:10 +08:00   2
    WSL, Git bash, Ubuntu
    ysc3839
        4
    ysc3839  
       2018-06-15 18:04:16 +08:00
    我前几天尝试在 WSL Ubuntu 18.04 里安装 php7.2-fpm,配合 nginx 使用,结果发现网页无法完全加载,据说是已知问题,就放弃了。
    lscho
        5
    lscho  
       2018-06-15 18:05:26 +08:00
    虚拟机才是王道
    iConnect
        6
    iConnect  
       2018-06-15 18:06:33 +08:00 via Android
    @kingname 现在 mysql-python 是可用?还得不可用?
    kindjeff
        7
    kindjeff  
       2018-06-15 18:07:31 +08:00   1
    编译 Python 速度奇慢
    kyrre
        8
    kyrre  
    OP
       2018-06-15 18:13:08 +08:00
    @vale666 对,我手误了。gitbash。

    @kindjeff Python 一般不会自编译吧?
    vale666
        9
    vale666  
       2018-06-15 18:25:36 +08:00
    顺便借楼:
    大家有在 windows 上用 git bash 的,如果想要类似 GTK 下 Guake 或 KDE 下 Yakuake 中的“下拉”和“标签”功能,可以看一下这个项目: https://github.com/vale666/Wuake ;虽然还不完美,在 Windows 下凑活用吧
    kindjeff
        10
    kindjeff  
       2018-06-15 19:01:17 +08:00 via iPhone
    @kyrre 我用 pyenv,就没办法了
    inoki
        11
    inoki  
       2018-06-15 20:31:17 +08:00
    SATA 3 固态,WSL 下读写文件系统比机械还慢
    march1993
        12
    march1993  
       2018-06-15 20:50:35 +08:00
    可行,效率不错,unix sock 文件不支持,改成 tcp 可解决问题。nginx,php-fpm,mysql,java 亲测可用
    Torpedo
        13
    Torpedo  
       2018-06-15 20:56:05 +08:00 via Android
    我是 wsl 一直做前端,node 都没啥问题。配合 vscode。但是 java 和 python 不好说
    kyrre
        14
    kyrre  
    OP
       2018-06-15 21:16:05 +08:00
    嗯,暂时不急着卸载,看看 V 友们有啥好的解决方案。
    yanaraika
        15
    yanaraika  
       2018-06-15 21:17:07 +08:00
    做做前端,写写 Java/Python 都行(虽然效率差点),一旦要和系统打交道(调 Linux/POSIX API )还是得老老实实回到 Linux
    billlee
        16
    billlee  
       2018-06-15 21:19:22 +08:00
    我是把 wsl + mintty + openssh 当作 windows 下最佳的 ssh 客户端来用的。
    不过最近换了网络环境后,想在 wsl 中用 zeroconf 或者 netbios 来解析局域网上一台服务器的地址,没成功。始终还是不如原生环境好用。
    wangxiaoaer
        17
    wangxiaoaer  
       2018-06-15 21:26:50 +08:00
    win 作为 java 开发环境哪里不成熟了
    someonedeng
        18
    someonedeng  
       2018-06-15 21:43:31 +08:00 via Android
    我这里 wsl == ssh-client
    6IbA2bj5ip3tK49j
        19
    6IbA2bj5ip3tK49j  
       2018-06-15 21:53:51 +08:00
    Windows 作为 Java 开发环境是没啥问题的。
    WSL 只能算个半成品,老老实实用虚拟机。
    kyrre
        20
    kyrre  
    OP
       2018-06-15 21:56:15 +08:00
    @wangxiaoaer 光做 java 开发本身问题不大,现在还要时不时做 python 的开发,有时候还要玩玩 docker 啥的
    kyrre
        21
    kyrre  
    OP
       2018-06-15 21:57:47 +08:00
    @someonedeng 只做 ssh-client 的话不如直接 xshell 了,就算 putty 也很好用了。
    metorm
        22
    metorm  
       2018-06-15 21:58:32 +08:00
    最近在 MSYS2 里面做了一些开发,感觉怎么比 WSL 还好用呢……
    没做网络开发,但是 MSYS2 里面的 GUI 程序如 QT creator 全部能用让我感到很惊奇
    kyrre
        23
    kyrre  
    OP
       2018-06-15 21:59:25 +08:00
    @billlee 你这个最佳是自封的吧?
    shansing
        24
    shansing  
       2018-06-15 22:16:08 +08:00
    楼上把 WSL 当 SSH 客户端用的,不妨了解一下 Windows 自带的 OpenSSH :doge:
    lujjjh
        25
    lujjjh  
       2018-06-15 22:26:37 +08:00
    文件模式的问题可以看看这个 issue:
    https://github.com/Microsoft/WSL/issues/81#issuecomment-356081660
    xiaqi
        26
    xiaqi  
       2018-06-15 22:47:00 +08:00 via Android
    我也很想,但是,
    今天我试了下 golang,sorry, fork 失败.嗯,go1.95 和 go1.10 都不行
    xiaqi
        27
    xiaqi  
       2018-06-15 22:48:14 +08:00 via Android
    @xiaqi 刚点了添加回复,才看懂了题目.python 应该可以!
    cy97cool
        28
    cy97cool  
       2018-06-15 23:04:33 +08:00 via Android
    打开 wsl 的 bash 后 touch xxxyyy
    然后 windows 下使用 everything 搜索 xxxyyy 就能找到 rootfs 文件夹在哪了
    不过 rootfs 别乱动 最好把它当成只读的
    pabupa
        29
    pabupa  
       2018-06-15 23:06:43 +08:00
    能用,但是 ide 都不支持,还是很难受。
    shynome
        30
    shynome  
       2018-06-16 00:12:21 +08:00
    wsl ubuntu 的默认路径是这个:
    ```
    "%userprofile%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\root\"
    ```

    文件夹共享我是用 mklink(cmd) 共享 wsl root 文件夹下的目录, 如下:
    ```ssh
    mklink /D "%userprofile%/.ssh" "%userprofile%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\root\.ssh"
    ```

    这里是折腾的记录:
    <https://github.com/shynome/shynome.github.io/issues/4>
    kevinhwang
        31
    kevinhwang  
       2018-06-16 00:13:18 +08:00
    各位大佬别装 B 了,windows 是垃圾,别用了,回去用你们的 mac 比较高贵。
    我用 wsl 就是喜欢可以 make 各种 tar,用 linux 各种的 client,例如 ssh,mysql,redis。要把虚拟的东西拿到当 server 也是搞笑。IO 性能似乎有损耗,感觉没 linux 原生好。
    不排斥 linux 桌面,但痛点是没有 windows 的 everything,使我离不开 windows。
    kevinhwang
        32
    kevinhwang  
       2018-06-16 00:15:50 +08:00
    nicevar
        33
    nicevar  
       2018-06-16 00:24:11 +08:00
    用熟练了 win/mac/linux 真没什么区别,三个系统都用了 10 年以上,win 已经用了 20 年了,使用习惯都能配置成一样,android/iOS/Java web/php/python 我都做,家里两台 windows、两台 mac、四台 linux,基本上坐在哪边就用哪台
    newater
        34
    newater  
       2018-06-16 05:27:56 +08:00
    17063 版本后应该能通过文件 /etc/wsl.conf 设置挂载方式,说明见:
    https://docs.microsoft.com/en-us/windows/wsl/wsl-config#set-wsl-launch-settings
    默认文件系统 DrvFs 支持形如"metadata,uid=1000,gid=1000,fmask=133,dmask=22"的选项,参见:
    https://blogs.msdn.microsoft.com/commandline/2018/01/12/chmod-chown-wsl-improvements

    有点好奇,系统洁癖该怎样设置权限?
    kyrre
        35
    kyrre  
    OP
       2018-06-16 06:42:45 +08:00
    @newater 多谢指点。我最烦什么文件目录都是 777 的那种。
    newater
        36
    newater  
       2018-06-16 08:35:58 +08:00
    @kyrre 我也是刚从 @kevinhwang 给的链接追溯找到的方法。
    经过实际测试,这样操作后还是有部分 777 的文件,即那些以运行 WSL 的 Windows 用户身份不能访问的文件。
    虽然在 WSL 中显示权限是 777,但其实并不能访问,所以姑且当这些文件不存在吧。
    janxin
        37
    janxin  
       2018-06-16 08:59:18 +08:00
    推荐还是装个 Linux 吧,用 WSL 确实有些地方 BUG 莫名其妙(表现不一致),或者是有些东西使用起来有问题
    zjsxwc
        38
    zjsxwc  
       2018-06-16 09:31:32 +08:00
    这个了解下,就知道 wsl 的坑有多少,我觉得目前 wsl 也就前端写写 typescript 什么的可以用用:

    https://github.com/ethanhs/WSL-Programs#the-list
    wwek
        39
    wwek  
       2018-06-16 11:28:29 +08:00
    用 docker 或者 vagrant 吧
    iyaozhen
        40
    iyaozhen  
       2018-06-16 11:46:28 +08:00 via Android
    等一下,开发 JAVA 和 Python,Windows 也行啊,都用 IDE 没啥区别。感觉用不上子系统啊
    HFcbyqP0iVO5KM05
        41
    HFcbyqP0iVO5KM05  
       2018-06-16 12:26:22 +08:00 via Android
    其实 HyperV 真的还挺好用的
    HFcbyqP0iVO5KM05
        42
    HFcbyqP0iVO5KM05  
       2018-06-16 12:35:40 +08:00 via Android
    其实 HyperV 真的还挺好用的,我们公司自己买的几台戴尔服务器,全部装上 Windows Server 跑 HyperV,再在里面开 Linux 虚拟服务器。
    个人电脑用起来也蛮不错,IO 损耗几乎没有,动态内存和检查点很符合 PC 使用场景(内存,备份之类)
    tinytin
        43
    tinytin  
       2018-06-16 12:38:54 +08:00 via iPhone
    @ysc3839 装了 wegame ?
    vansl
        44
    vansl  
       2018-06-16 12:44:13 +08:00 via iPhone
    win 下除了游戏和 QQ 其他真的没什么优势了,直接上 linux 吧
    nvkou
        45
    nvkou  
       2018-06-16 13:04:34 +08:00
    doucker 啊。
    douker 可以挂载目录,源码和 git 都在 window。ide 任你挑
    kyrre
        46
    kyrre  
    OP
       2018-06-16 17:28:00 +08:00
    @gulu hyperV 是不是意味着你的笔记本上要装 Server 版 Windows ?
    Tenvins
        47
    Tenvins  
       2018-06-16 17:51:38 +08:00
    IO 速度太慢,而且安装某些服务时会出现莫名的错误,然后你在网上找这个错误的原因时找着找着最后会发现是 WSL 造成的。
    ysc3839
        48
    ysc3839  
       2018-06-16 20:09:49 +08:00
    @tinytin 没有。
    keysona
        49
    keysona  
       2018-06-16 20:18:03 +08:00
    我就不折腾了,老实 mac。

    只要苹果不做什么智障操作...
    dorothyREN
        50
    dorothyREN  
       2018-06-16 22:01:01 +08:00   1
    @kyrre 不是,专业版 win10 就有
    kyrre
        51
    kyrre  
    OP
       2018-06-16 22:01:03 +08:00
    @zjsxwc 这个不错,可以长期关注。
    现在看来 wsl 确实还不如虚拟机。
    kyrre
        52
    kyrre  
    OP
       2018-06-16 22:03:34 +08:00
    @nvkou docker 吧?
    Bramblex2
        53
    Bramblex2  
       2018-06-16 22:40:18 +08:00 via iPhone
    @keysona mac 也不好用啊,想跑个 docker 结果还要装个虚拟机,没比 wsl 好多少
    murmur
        54
    murmur  
       2018-06-16 22:50:23 +08:00
    java 如果是 web 开发没什么问题的 java 的虚拟机我认为是几种语言最完善的 不用 linux 子环境上 cmd 都可以
    python 因为依赖的 c 库太多 可能会遇到问题 但是 django 开发我也没遇到啥问题

    在 windows 下遇到最多的坑 我碰到的是 php
    q397064399
        55
    q397064399  
       2018-06-17 06:46:55 +08:00
    @Bramblex2 #53 把 docker 跑在 mac 上面不是脑抽? 这玩意高度依赖 LCX 跑服务器上就好了
    q397064399
        56
    q397064399  
       2018-06-17 06:51:16 +08:00
    重要的事情说三遍,,Mac Mac Mac 基本上你想要的 都有了,你想要而苦苦不能得的,也有 Linux Server 能搞定,
    非要搞个 windows 来折腾开发,是闲的蛋疼吗? 都 20 好几的人了 别在工具上苦苦的折腾了,随大流就能在前人栽的大树下好好乘凉 你看 GitHub 凡是命令行的工具链 有几个会支持 windows,
    Qzier
        57
    Qzier  
       2018-06-17 0:58:47 +08:00 via iPhone
    可是可以,就是莫名其妙的问题太多了,明明和原生 Ubuntu 装的一样的软件,一样的配置,在 wsl 却报错。
    thulof
        58
    thulof  
       2018-06-17 15:04:26 +08:00
    @ysc3839 貌似是 80 端口占用?
    ysc3839
        59
    ysc3839  
       2018-06-17 15:55:07 +08:00 via Android
    @thulof 占用的话不应该是启动不起来吗?
    thulof
        60
    thulof  
       2018-06-17 19:03:17 +08:00
    @ysc3839 之前也是跑起来之后一直打不开,查了查,有说是端口占用的,有说是 wegame 冲突的。刚才看见帖子试了一下,打开 bash,自动升级了一下,然后 nginx 居然好了。。
    ysc3839
        61
    ysc3839  
       2018-06-17 19:08:00 +08:00 via Android
    @thulof 我是先把所有软件包都更新到了最新的,然后安装 nginx php7.2-fpm。先是将 php7.2-fpm 配置为 Unix socket,然后打开网页加载不全。再把 php7.2-fpm 配置为 9000 端口,还是加载不全。
    neutrino
        62
    neutrino  
       2018-06-17 22:21:29 +08:00
    @ysc3839 加载不全是指什么呢,如果是 loading 很久卡死的话可以把 nginx.conf 里的 fastcgi_buffering 关掉试试。
    ysc3839
        63
    ysc3839  
       2018-06-17 22:28:04 +08:00
    @neutrino 网页显示一半,下面不显示了。以后有机会再测试把,已经换虚拟机了。
    dif
        64
    dif  
       2018-06-21 11:19:28 +08:00
    纯开发,既然有 mac 就不要在考虑 win 了,linux 倒是可以考虑下,发行版随意~
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2611 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 12:31 PVG 20:31 LAX 05:31 JFK 08:31
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86