推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
lvhuiyang
V2EX  ›  Python

三种操作系统进行 Python 开发,各有什么痛点,又是怎么解决的?(非引战)

  •  
  •   lvhuiyang ·
    lyu-huiyang · May 27, 2018 · 14035 views
    This topic created in 3081 days ago, the information mentioned may be changed or developed.

    大二的时候学习 Python,win 下开发,然后被安利了 linux。后来装个 ubuntu 作为日常开发就天天嘚瑟,事实上 linux 的环境对于初学 Python 帮助确实不小。这时候痛点就是没 QQ 啊(忽略 wine 版),跟同学转发个文件总说一下发我邮箱别发 QQ,然后就十分羡慕使用 mac 进行开发,各种环境也 OK,QQ 微信也都是有的。

    实习后就是使用 mac 进行日常开发,确实方便很多啊,用着用着觉得 Python 开发环境就是这样的,似乎忘记了使用 Windows / linux 的痛,再后来就觉得用 mac 开发血统不纯正啊,用 linux 才够 geek。

    然而现在真的换了一台非 mac 电脑,先折腾某 linux 发行版:我去 ss 有问题啊,几小时后终于可以越过墙了,麻蛋想要个 PAC 模式就这么难吗,然后以及遇到了其他问题 -> 没信仰了换 win 10:卧槽,依赖有问题啊,项目在 win 下 run 起来都费劲,然后就上 linux 子系统或者虚拟机解决呗,然而又带来了新的问题.....


    请问各位大佬们都是使用什么系统环境进行开发,这些痛点是怎么解决的呢?(非引战,意在学习与讨论下大家的解决方案)

    Supplement 1  ·  May 28, 2018
    感谢大家回复,关于 “觉得用 mac 开发血统不纯正啊,用 linux 才够 geek ” 只是个人不成熟的看法,没有贬低 mac 的含义,帖子主要讨论 python 开发的痛点,大佬何必拿这句话挖苦,揪着不放呢。
    88 replies  •  2018-05-29 18:25:22 +08:00
    mrlcy
    mrlcy
    May 27, 2018 via iPhone
    1
    项目部署在什么环境 ,就用什么环境测试开发。
    jerrry
    jerrry
    May 27, 2018 via Android
    2
    换回 mac
    gobomb
    gobomb
    May 27, 2018 via iPhone
    3
    mac 是最方便的,图形界面和命令行终端都很好用。需要 linux 的时候,搞台云主机 ssh 上去就 ok,比虚拟机的方案好。
    easylee
    easylee
    May 28, 2018❤️1
    4
    反正我是信了程序员要轻松省事就上 mac 的邪。
    param
    param
    May 28, 2018 via Android
    5
    我推荐 ArchLinux。Linux 可以通过 iptables 设置全局代理。
    hourann
    hourann
    May 28, 2018 via iPhone
    6
    从我目前接触过的项目来说,win 做 python 开发没什么痛感(除了项目要用到 Docker 外)。一些要编译环境的包可以下预编译包,除非一些库没对 win 做支持,大部分问题都能搜索一下解决。你在其他平台也是要踩坑的。但是有条件上 mac 还是用 mac,不输 windows 的 GUI 软件生态和碾压 windows 的开发环境搭建过程
    rabbbit
    rabbbit
    May 28, 2018
    7
    Windows 下(别的没用过)
    1 lxml 之类的库装不上,装 anaconda 即可解决
    2 编解码问题,什么 GBK Bom 头,踩两次坑习惯了就好
    RqPS6rhmP3Nyn3Tm
    RqPS6rhmP3Nyn3Tm
    May 28, 2018 via iPad
    8
    Arch 好用,但是没基础不要碰,安装都装不上
    rb6221
    rb6221
    May 28, 2018 via Android
    9
    还有正统这一说?所有的安装包不都是官方释出的?
    等你工作多年换了几家全是不同的环境就知道了,什么系统从根本上没区别,都是做同一件事而已
    dex2jar
    dex2jar
    May 28, 2018 via Android
    10
    装着 win,用虚拟机搞 linux 无压力
    magiclx
    magiclx
    May 28, 2018
    11
    PyCharm 横跨 win mac linux,可考虑购买部署环境相同的版本进行开发,需要查阅文档时,使用 横跨 win mac linux 的 FireFox,办公文档可 online,此外再无难处。用什么 OS 其实都可以,要说难点,就在于不熟悉 OS,不熟悉 Python 库,不熟悉约定,英语不够好咯。
    LongLights
    LongLights
    May 28, 2018 via Android
    12
    我前几天也是刚开始使用 Linux 然后 ssr 的 pac 模式用不了真是蛋疼。。。然后 sublime 的 sidebarenhancements 快捷键用不了真是蛋疼。。。然后我就把 win 装回来了
    unlimitedsola
    unlimitedsola
    May 28, 2018 via Android
    13
    > 再后来就觉得用 mac 开发血统不纯正啊,用 linux 才够 geek。
    炫耀驱动编程?够用还不可以?
    ericgui
    ericgui
    May 28, 2018
    14
    这个很好,顶上去。

    要知道,Windows 环境下玩 Python 真的是太 TM 痛苦了。其他都不说了。

    Mac 要是有钱买,还是买 Mac 吧。
    debuggerx
    debuggerx
    May 28, 2018❤️1
    15
    日常 deepin,写好的程序如果需要跨平台就通过 git 传到 vmware 里的 mac 和 win 去测试打包……
    不过确实各个平台有各自的问题,最近一个月左右碰到的有:
    ①linux 下 pyqt 写的程序默认无法直接输入中文。
    ②mac 下 pyqt5.8 以后直接复制文本框的内容出去会带 bom 头
    ③win 下用 pyinstaller 打包 magic 库路径无法正确识别 dll,只能改 magic 加载 dll 相关源码
    总的来说 win 的问题是最多的,花的时间最多。mac 好一些,只是习惯了 linux 包管理安装开发环境的方式以后觉得 mac 太废,brew 总是出问题和 apt 没法比。linux 门槛确实高一些,有一定积累之后会非常得心应手。
    另外搞不懂为什么那么纠结于 pac,日常全局模式使用非常爽,经常用了一整天忽然要访问内网服务不通才发现原来是开了全局 ss,一个快捷键临时关闭代理,完事了快捷键再开,完全 ojbk
    lunafreya
    lunafreya
    May 28, 2018 via iPhone
    16
    Linux 就 Ubuntu, 别折腾 arch, 浪费生命
    debuggerx
    debuggerx
    May 28, 2018
    17
    @debuggerx ss 的 pac 问题可能是因为官方只给 linux 做了 ss-qt 没有 pac 相关的支持吧,别的发行版怎么样我不清楚,deepin 社区有人仿照 win/mac 的客户端做了个 deepin 专用的小飞机,以前简单测试过应该是能用的:
    https://github.com/PikachuHy/shadowsocks-client
    不过因为我自己很早以前就克隆了 ss-qt 的源码添加了一些自己需要的功能代码(自动设置系统代理参数,响应快捷键等)后编译自用得很爽,所以并没有换他这个来日常用。而且最近用了谷歌 outline 方案之后发现完全用命令的方式调用 ss 库挂代理也挺方便的。
    cdwyd
    cdwyd
    May 28, 2018 via Android
    18
    @rabbbit
    现在直接 pip 就可以安装上
    cdwyd
    cdwyd
    May 28, 2018 via Android
    19
    @ericgui
    具体说说哪里痛苦了,目前还没痛苦过
    trn4
    trn4
    May 28, 2018 via iPhone
    20
    开发的话只有 win 不正统吧……
    congeec
    congeec
    May 28, 2018
    21
    你水平还是不够,驾驭不了 Linux 和 Windows。Geeky 有啥用,能讨妹子欢心么?还是老老实实用 Mac 写代码赚钱,有钱了买 Windows,Linux 设备各来一套
    suantong
    suantong
    May 28, 2018 via Android❤️1
    22
    Mac 血统不纯正?什么血统?
    msg7086
    msg7086
    May 28, 2018
    23
    Python 开发,你说的是写还是运行?
    写的话,哪个方便用哪个。
    运行的话,生产环境用哪个就用哪个。

    我偶尔要写 Python 的时候,Windows 下 Sublime 写完,生产环境 Ubuntu 12.04 下运行看效果。
    chiu
    chiu
    May 28, 2018 via Android
    24
    目前日常跑的 linux,在 x230 上
    clino
    clino
    May 28, 2018 via Android
    25
    要说我有什么痛点,目前没有
    用的 ubuntu
    janxin
    janxin
    May 28, 2018 via iPad
    26
    看你的需求。

    windows 最大的问题是如果运行环境不一致就很蛋疼不如干脆上 linux,subsystem 也是有很多问题的。对于初学者而言,win 也是最难用,会出最多问题的系统。
    linux 没什么蛋疼问题。
    mac 蛋疼的问题是如果是要上 tf 之类的只能写和用模型,想用 mac 训练模型?趁早换系统。

    当然你只是写不运行当我没说。用什么都一样反正都有 vscode/sublimetext
    blless
    blless
    May 28, 2018 via Android
    27
    有些库比如 sanic,win 不兼容。mac 不确定,linux 肯定没问题
    droiz
    droiz
    May 28, 2018 via iPhone❤️1
    28
    程序需要运行在 win 上就用 win 开发,否则就是 mac,除非你对 mac 极其讨厌或者对 linux 有信仰。年纪轻轻干什么不好,为什么非要把时间浪费在配 linux 环境上呢?

    讨论某个操作系统的血统问题 /或者够不够 geek,这是病,得治。
    loading
    loading
    May 28, 2018 via iPhone
    29
    生产环境一致,别出一些诡异问题了,都不知道怎么死的。
    doubleflower
    doubleflower
    May 28, 2018 via Android
    30
    @droiz linux 要什么配置?
    murmur
    murmur
    May 28, 2018
    31
    web 相关的库出兼容性情况不多 但是 python 是个胶水语言 很多非纯 python 的库 都带了 c 的 lib 这就不好说了
    考虑到*nix 系统的尿性 跟生产系统一致的 linux 才是正统
    zhsj
    zhsj
    May 28, 2018 via Android
    32
    > 用 linux 才够 geek
    说明你还不够 geek,不会用 linux。

    要么老老实实学一下 linux 基础。要么老老实实用 mac。
    zhsj
    zhsj
    May 28, 2018 via Android
    33
    @debuggerx

    > linux 下 pyqt 写的程序默认无法直接输入中文
    你使用姿势的问题,了解一下动态库和 qt platform input plugin 等基础知识吧。
    fentensoft
    fentensoft
    May 28, 2018 via Android
    34
    用的 Arch,SS 用的 MEOW,所有海外流量全部代理
    zynlp
    zynlp
    May 28, 2018 via iPhone
    35
    docker 万岁
    gaMe5hGLc86G4U52
    gaMe5hGLc86G4U52
    May 28, 2018
    36
    Ubuntu 下的 PAC 我还没弄会呢,楼主会了可以开个教程,ss 感觉在 Ubuntu 上就是个壳子。
    simple2025
    simple2025
    May 28, 2018
    37
    @zynlp windows 不好用 docker 吧
    keysona
    keysona
    May 28, 2018
    38
    迫于穷,我大学也是这样想的。期间装了很多发行版。

    工作后,立马叛逃到 mac 了。
    ctro15547
    ctro15547
    May 28, 2018❤️1
    39
    win 读写中文有编码问题,py3 好像好些了,不过开发环境是 py2,所以一直用 linux 写,而且部分库对 linux 支持比 win 好。 传文件的问题可以用手机 qq 接,usb 从手机里拿。ss 问题,一台手机或路由器做中转完事,闲功夫折腾转发。没用过 mac,或许有图形界面,各种完善的工具,可能会更好些吧
    chesterzzy
    chesterzzy
    May 28, 2018
    40
    我用 linux 虚拟机。反正如果计算量大我就放到组内服务器去跑。
    pony279
    pony279
    May 28, 2018
    41
    full time linux 一年了。
    我用 debian。没发现有那么多问题。有问题的都能自己解决。
    wlwood
    wlwood
    May 28, 2018
    42
    嗯,可能,需要换 Go 吧。跨系统编译,(逃。。。。


    Mac 还好吧,有 QQ,有微信,又有终端。没啥正统不正统的(不过,我还是更喜欢 linux 些)
    Windows 下 Python,反正用的不舒服。
    目前 linux 下为主,Windows 为辅。
    Linux 下的问题:
    1. qq,我用 vbox,装 xp,里面开 QQ。其实还好,XP 精简,不怎么卡。
    2. 微信,网页版。
    3. ss 的 PAC 模式,这个一般,我就自己收集下。保存到个文件,然后,就导入到代理的配置里面去就好了。

    其实更主要是,什么用的不爽,Linux 下自己折腾到自己爽为止。其他系统不太好搞啊
    Norie
    Norie
    May 28, 2018
    43
    等 mbp2018.。。
    chaleaochexist
    chaleaochexist
    May 28, 2018
    44
    只针对 python 来说,用习惯了都一样.

    引申来看的话,只是 windows 支持的 GUI 客户端多一些,linux 支持的 service 多一些.

    譬如
    - linux 上的很多 GUI 客户端只能找跨平台的,sourcetree 只支持 mac 和 windows.
    - redis 原生支持 linux, windows 的话只能在 github 上找 windows porting.

    另外还取决于项目,有一些项目只支持 linux... 譬如 ralph
    目前还没听说哪个项目只支持 windows 的.
    spkinger
    spkinger
    May 28, 2018
    45
    win+Linux 虚拟机了解一下
    5oiR5piv5YK76YC8
    5oiR5piv5YK76YC8
    May 28, 2018
    46
    三个平台都用过,docker 万岁
    lvhuiyang
    lvhuiyang
    OP
    May 28, 2018
    47
    @msg7086 写的时候的代码补全也依赖环境吧,所以你在 win 下也是安装一套 Python 环境吗?
    fy
    fy
    May 28, 2018
    48
    真·解决方案:Vagrant
    说 Docker 的,Docker 不是为开发做准备的,而 Vagrant 是。
    当然我这种玩游戏的懒人选择 Win10 + WSL
    dychenyi
    dychenyi
    May 28, 2018
    49
    最好的方式 win10+虚拟机。虽说 mac 也有虚拟机,但周边日常软件始终丰富度不如 win。
    raptor
    raptor
    May 28, 2018
    50
    mac 和 linux 用起来都很顺,windows 没法用
    Muninn
    Muninn
    May 28, 2018
    51
    说 docker 的又没让在容器内开发。

    只是在容器跑测试环境而已。

    总的来说 mac > win10 > linux

    我都用过很久

    win10 可以在自带的 ubuntu 上跑测试 也可以在 docker 里跑。
    mengzhuo
    mengzhuo
    May 28, 2018
    52
    真工程师是不会被这些束缚的

    我公司开发用 Win+Cygwin,Ubuntu 原生
    在家用 Mac
    SupperMary
    SupperMary
    May 28, 2018 via Android
    53
    win 编码问题,没解决。
    alexsunxl
    alexsunxl
    May 28, 2018
    54
    arch +1
    有两 win,一 mac,一 arch
    bbsteel
    bbsteel
    May 28, 2018 via Android
    55
    看起来你用 linux 的痛点就是没法转发文件,在三个系统里,这个是最容易解决的吧。ftp,邮箱,网盘哪一个解决不了。

    N 年没用 qq 的人路过。
    UnknownR
    UnknownR
    May 28, 2018
    56
    你看电影美剧里,程序员用 macOS 的比例可不少,比如碟中谍,硅谷,黑客军团这些,macOS 可是很 geek 的,看你怎么用了
    Alexhex
    Alexhex
    May 28, 2018
    57
    各位大佬,我是一个新手自学者……目前试图在 mac 下面装 Python3 的时候遇到了这个问题:

    https://stackoverflow.com/questions/49093290/attempted-install-of-python-3-via-homebrew-fails-on-mac-os-x-sierra

    请问该如何解决。。
    ftexplore
    ftexplore
    May 28, 2018
    58
    用什么系统都可以啊,解决问题就好。我个人一般生活和开发用 windows。然后代码托管、maven 服务器等一系列工作或者自己需要的服务,跑在额外的一台配置很低的 linux 上面。
    crb912
    crb912
    May 28, 2018 via Android
    59
    服啦。ubuntu 写 python 不是美滋滋么?有啥痛点,搞不懂。
    xpresslink
    xpresslink
    May 28, 2018
    60
    如果你 GIT 用得很 6,至少会 HOOK 啊,Pythcharm 的环境管理远程调试部署,会 wmare ESXi,docker,云平台操作。
    LINUX 和 Windows Server 都有搭建服务的能力。
    我不信你会有什么痛点。

    总结一下,你的痛点来自于你自身技术水平的限制性,不要怪操作系统。
    crb912
    crb912
    May 28, 2018 via Android❤️1
    61
    @Alexhex 不是提示了么:brew upgrade python
    crb912
    crb912
    May 28, 2018 via Android
    62
    @bbsteel 握手。我也是好多年没在 PC 上用过 QQ 了,下载文件都是 aria + 网盘
    mcfog
    mcfog
    May 28, 2018
    63
    桌面环境和运行环境的操作系统是两回事,前者 mac > win >>>>>> linux,后者 linux=docker>>>mac>>>>>....>>>>>>win

    所以懒得折腾选 mac+mac
    学生没钱选 win+linux/docker

    备选 mac+linux/docker

    以上
    aristotll
    aristotll
    May 28, 2018
    64
    @chaleaochexist #44 win32 binding
    Alexhex
    Alexhex
    May 28, 2018
    65
    @crb912 感谢。当时没敢升级是因为听说 Mac 会依赖自带的 python 2,怕升级引起问题。而且不知道为什么不能平行的安装 python 3。上午找文章看了看应该是没有这种担心的。
    swulling
    swulling
    May 28, 2018 via iPhone
    66
    MacOS 是正统的 UNIX
    recall704
    recall704
    May 28, 2018
    67
    docker 解决一切
    gogo81745
    gogo81745
    May 28, 2018 via Android
    68
    用 pycharm 支持远程 python 解释器的功能
    在 wsl(windows subsysyem linux)装 python,嫌弃 wsl 不好的话上 vps、虚拟机都行。
    https://juejin.im/entry/59352f62ac502e0068b12630
    gogo81745
    gogo81745
    May 28, 2018 via Android
    69
    谁说开发机就一定得装 py 来着(斜眼笑)
    msg7086
    msg7086
    May 28, 2018
    70
    @lvhuiyang 我就是 Sublime 裸撸,然后 Syncthing 自动和 Linux 下的目录双向同步,直接在 Linux 下运行看结果。
    Windows 上没有安装任何提示和运行环境。
    不过我本来就不是 Python 程序员,所以可能参考意义不大。
    Rob007
    Rob007
    May 28, 2018
    71
    搞两台机器,一台 Ubuntu,撸 Python,一台 windows 日常办公
    ytmsdy
    ytmsdy
    May 28, 2018
    72
    在 windows 下写了 2 年 python 的默默路过。。。
    装一个 pycharm 就可以了,虚拟环境,包管理,命令执行全部交给它就好。真心好用
    lvhuiyang
    lvhuiyang
    OP
    May 28, 2018
    73
    @msg7086 感谢回复,那 debug 的情况是怎么处理的呢? logging 么 = =
    limbo0
    limbo0
    May 28, 2018 via Android
    74
    mac 没痛点
    jiangnanyanyu
    jiangnanyanyu
    May 28, 2018 via Android
    75
    在 win 下开发 Python 的是不是不要活了。。。
    PythonAnswer
    PythonAnswer
    May 28, 2018 via iPhone
    76
    先做到自己人肉跨平台,程序才能跨平台
    sudoz
    sudoz
    May 28, 2018
    77
    Linux/macOS 无痛
    Win 很痛
    geelaw
    geelaw
    May 28, 2018 via iPhone
    78
    macOS 是正统 UNIX。

    我没用过 Linux 和 macOS 做开发,实际上我几乎不怎么开发,不过就我有限的经验来看,Windows 下的问题大多是很多人懒得支持 Windows 弄的,直接把自己的代码绑死在 UNIX/POSIX/Linux 上。
    conn4575
    conn4575
    May 28, 2018 via Android
    79
    请一定要用 pycharm,不管你用什么系统,py 环境在哪里,pycharm 的远程编辑远程调试功能都可以帮你搞定
    msg7086
    msg7086
    May 29, 2018
    80
    @lvhuiyang 我们的 Python 程序都是跑在比较底层的,日常以打 log 为主。
    我是 Ruby 程序员,不懂 Python,所以写 Python 的机会不是很多,一般打 log 就够用了。
    zhangyiming
    zhangyiming
    May 29, 2018 via Android
    81
    初装 ubuntu,配置翻墙,我的顺序是: 去 githib 下 ss-qt,ubuntu 系统设置“全局”代理。然后就可以为所欲为配置了
    sinoairlc
    sinoairlc
    May 29, 2018
    82
    @msg7086 请问是有纪大佬吗
    lazydao
    lazydao
    May 29, 2018
    83
    其实你自己已经能找到最适合自己的一套环境了,只是年轻,瞎 jb 折腾,不需要发帖问别人
    southsala
    southsala
    May 29, 2018
    84
    mac
    msg7086
    msg7086
    May 29, 2018
    85
    @sinoairlc 呃,阁下是?
    salamanderMH
    salamanderMH
    May 29, 2018
    86
    windows 下有 wsl 了
    sinoairlc
    sinoairlc
    May 29, 2018
    87
    @msg7086 只是微不足道的路人罢了。。。唔。只是随手打开贴子就看到大佬表示有点小兴奋。。。
    SingeeKing
    SingeeKing
    May 29, 2018
    88
    用了 Mac 才知道用 Windows 和 Linux 开发多么不舒服
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1311 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 149ms · UTC 22:24 · PVG 06:24 · LAX 14:24 · JFK 17:24
    ♥ Do have faith in what you're doing.