首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
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
V2EX  ›  Python

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

  •  
  •   lvhuiyang · 2018-05-27 23:35:14 +08:00 · 8087 次点击
    这是一个创建于 450 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大二的时候学习 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 子系统或者虚拟机解决呗,然而又带来了新的问题.....


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

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

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

    Mac 要是有钱买,还是买 Mac 吧。
        15
    debuggerx   2018-05-28 02:34:52 +08:00   ♥ 1
    日常 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
        16
    lunafreya   2018-05-28 02:34:58 +08:00 via iPhone
    Linux 就 Ubuntu, 别折腾 arch, 浪费生命
        17
    debuggerx   2018-05-28 03:08:26 +08:00
    @debuggerx ss 的 pac 问题可能是因为官方只给 linux 做了 ss-qt 没有 pac 相关的支持吧,别的发行版怎么样我不清楚,deepin 社区有人仿照 win/mac 的客户端做了个 deepin 专用的小飞机,以前简单测试过应该是能用的:
    https://github.com/PikachuHy/shadowsocks-client
    不过因为我自己很早以前就克隆了 ss-qt 的源码添加了一些自己需要的功能代码(自动设置系统代理参数,响应快捷键等)后编译自用得很爽,所以并没有换他这个来日常用。而且最近用了谷歌 outline 方案之后发现完全用命令的方式调用 ss 库挂代理也挺方便的。
        18
    cdwyd   2018-05-28 03:11:47 +08:00 via Android
    @rabbbit
    现在直接 pip 就可以安装上
        19
    cdwyd   2018-05-28 03:12:55 +08:00 via Android
    @ericgui
    具体说说哪里痛苦了,目前还没痛苦过
        20
    xiadong1994   2018-05-28 04:16:05 +08:00 via iPhone
    开发的话只有 win 不正统吧……
        21
    congeec   2018-05-28 04:36:48 +08:00
    你水平还是不够,驾驭不了 Linux 和 Windows。Geeky 有啥用,能讨妹子欢心么?还是老老实实用 Mac 写代码赚钱,有钱了买 Windows,Linux 设备各来一套
        22
    suantong   2018-05-28 05:38:26 +08:00 via Android   ♥ 1
    Mac 血统不纯正?什么血统?
        23
    msg7086   2018-05-28 06:10:26 +08:00
    Python 开发,你说的是写还是运行?
    写的话,哪个方便用哪个。
    运行的话,生产环境用哪个就用哪个。

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

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

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

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

    要么老老实实学一下 linux 基础。要么老老实实用 mac。
        33
    zsj950618   2018-05-28 08:21:02 +08:00 via Android
    @debuggerx

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

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


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

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

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

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

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

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

    总的来说 mac > win10 > linux

    我都用过很久

    win10 可以在自带的 ubuntu 上跑测试 也可以在 docker 里跑。
        52
    mengzhuo   2018-05-28 10:29:18 +08:00
    真工程师是不会被这些束缚的

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

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

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

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

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

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

    备选 mac+linux/docker

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

    我没用过 Linux 和 macOS 做开发,实际上我几乎不怎么开发,不过就我有限的经验来看,Windows 下的问题大多是很多人懒得支持 Windows 弄的,直接把自己的代码绑死在 UNIX/POSIX/Linux 上。
        79
    conn4575   2018-05-28 21:19:40 +08:00 via Android
    请一定要用 pycharm,不管你用什么系统,py 环境在哪里,pycharm 的远程编辑远程调试功能都可以帮你搞定
        80
    msg7086   2018-05-29 02:34:42 +08:00
    @lvhuiyang 我们的 Python 程序都是跑在比较底层的,日常以打 log 为主。
    我是 Ruby 程序员,不懂 Python,所以写 Python 的机会不是很多,一般打 log 就够用了。
        81
    sunzongzheng   2018-05-29 09:14:07 +08:00 via Android
    初装 ubuntu,配置翻墙,我的顺序是: 去 githib 下 ss-qt,ubuntu 系统设置“全局”代理。然后就可以为所欲为配置了
        82
    sinoairlc   2018-05-29 10:00:04 +08:00
    @msg7086 请问是有纪大佬吗
        83
    lazydao   2018-05-29 10:12:02 +08:00
    其实你自己已经能找到最适合自己的一套环境了,只是年轻,瞎 jb 折腾,不需要发帖问别人
        84
    southsala   2018-05-29 11:42:29 +08:00
    mac
        85
    msg7086   2018-05-29 13:00:20 +08:00
    @sinoairlc 呃,阁下是?
        86
    salamanderMH   2018-05-29 16:09:20 +08:00
    windows 下有 wsl 了
        87
    sinoairlc   2018-05-29 16:45:35 +08:00
    @msg7086 只是微不足道的路人罢了。。。唔。只是随手打开贴子就看到大佬表示有点小兴奋。。。
        88
    SingeeKing   2018-05-29 18:25:22 +08:00
    用了 Mac 才知道用 Windows 和 Linux 开发多么不舒服
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1745 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 27ms · UTC 16:31 · PVG 00:31 · LAX 09:31 · JFK 12:31
    ♥ Do have faith in what you're doing.