Python在三种操作系统上进行开发,各有什么痛点,以及如何解决?
大二的时候学习 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 子系统或者虚拟机解决呗,然而又带来了新的问题.....
请问各位大佬们都是使用什么系统环境进行开发,这些痛点是怎么解决的呢?(非引战,意在学习与讨论下大家的解决方案)
Python在三种操作系统上进行开发,各有什么痛点,以及如何解决?
项目部署在什么环境 ,就用什么环境测试开发。
Python跨平台开发的痛点与应对
Python虽然是跨平台语言,但在不同系统(Windows、macOS、Linux)开发时仍会遇到环境配置、路径处理、系统依赖等差异。以下是常见痛点及解决方案:
-
环境隔离与包管理
- 痛点:系统全局Python环境混乱,包版本冲突。
- 解决:用
venv或conda创建独立虚拟环境,配合requirements.txt或pyproject.toml锁定依赖。
-
路径与文件系统差异
- 痛点:Windows用反斜杠路径,Linux/macOS用正斜杠;系统临时目录路径不同。
- 解决:用
pathlib统一处理路径,避免硬编码:from pathlib import Path data_file = Path("data") / "file.txt" # 自动适配系统
-
系统依赖库问题
- 痛点:某些Python包(如
psycopg2、pycurl)需要系统级C库支持,在不同系统安装方式不同。 - 解决:
- Linux/macOS:通过包管理器安装依赖(如
apt-get install libpq-dev)。 - Windows:使用预编译的二进制包(如从
Unofficial Windows Binaries for Python Extension Packages下载),或通过conda安装。
- Linux/macOS:通过包管理器安装依赖(如
- 痛点:某些Python包(如
-
换行符与编码
- 痛点:文本文件换行符(
\r\nvs\n)和默认编码(Windows常用gbk)导致跨平台读写异常。 - 解决:用
open()时明确指定编码和换行符处理:with open("file.txt", "r", encoding="utf-8", newline="") as f: content = f.read()
- 痛点:文本文件换行符(
-
子进程与命令差异
- 痛点:系统命令不同(如
dirvsls),调用原生工具时兼容性差。 - 解决:优先使用Python内置库(如
shutil)替代系统命令;必要时用sys.platform判断系统:import sys if sys.platform == "win32": subprocess.run(["cmd", "/c", "echo Windows"])
- 痛点:系统命令不同(如
总结:用虚拟环境隔离、pathlib处理路径、明确指定编码、优先使用跨平台库。
换回 mac
mac 是最方便的,图形界面和命令行终端都很好用。需要 linux 的时候,搞台云主机 ssh 上去就 ok,比虚拟机的方案好。
反正我是信了程序员要轻松省事就上 mac 的邪。
我推荐 ArchLinux。Linux 可以通过 iptables 设置全局代理。
从我目前接触过的项目来说,win 做 python 开发没什么痛感(除了项目要用到 Docker 外)。一些要编译环境的包可以下预编译包,除非一些库没对 win 做支持,大部分问题都能搜索一下解决。你在其他平台也是要踩坑的。但是有条件上 mac 还是用 mac,不输 windows 的 GUI 软件生态和碾压 windows 的开发环境搭建过程
Windows 下(别的没用过)
1 lxml 之类的库装不上,装 anaconda 即可解决
2 编解码问题,什么 GBK Bom 头,踩两次坑习惯了就好
Arch 好用,但是没基础不要碰,安装都装不上
还有正统这一说?所有的安装包不都是官方释出的?
等你工作多年换了几家全是不同的环境就知道了,什么系统从根本上没区别,都是做同一件事而已
装着 win,用虚拟机搞 linux 无压力
PyCharm 横跨 win mac linux,可考虑购买部署环境相同的版本进行开发,需要查阅文档时,使用 横跨 win mac linux 的 FireFox,办公文档可 online,此外再无难处。用什么 OS 其实都可以,要说难点,就在于不熟悉 OS,不熟悉 Python 库,不熟悉约定,英语不够好咯。
我前几天也是刚开始使用 Linux 然后 ssr 的 pac 模式用不了真是蛋疼。。。然后 sublime 的 sidebarenhancements 快捷键用不了真是蛋疼。。。然后我就把 win 装回来了
> 再后来就觉得用 mac 开发血统不纯正啊,用 linux 才够 geek。
炫耀驱动编程?够用还不可以?
这个很好,顶上去。
要知道,Windows 环境下玩 Python 真的是太 TM 痛苦了。其他都不说了。
Mac 要是有钱买,还是买 Mac 吧。
日常 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
Linux 就 Ubuntu, 别折腾 arch, 浪费生命
ss 的 pac 问题可能是因为官方只给 linux 做了 ss-qt 没有 pac 相关的支持吧,别的发行版怎么样我不清楚,deepin 社区有人仿照 win/mac 的客户端做了个 deepin 专用的小飞机,以前简单测试过应该是能用的:
https://github.com/PikachuHy/shadowsocks-client
不过因为我自己很早以前就克隆了 ss-qt 的源码添加了一些自己需要的功能代码(自动设置系统代理参数,响应快捷键等)后编译自用得很爽,所以并没有换他这个来日常用。而且最近用了谷歌 outline 方案之后发现完全用命令的方式调用 ss 库挂代理也挺方便的。
现在直接 pip 就可以安装上
具体说说哪里痛苦了,目前还没痛苦过
开发的话只有 win 不正统吧……
你水平还是不够,驾驭不了 Linux 和 Windows。Geeky 有啥用,能讨妹子欢心么?还是老老实实用 Mac 写代码赚钱,有钱了买 Windows,Linux 设备各来一套
Mac 血统不纯正?什么血统?
Python 开发,你说的是写还是运行?
写的话,哪个方便用哪个。
运行的话,生产环境用哪个就用哪个。
我偶尔要写 Python 的时候,Windows 下 Sublime 写完,生产环境 Ubuntu 12.04 下运行看效果。
目前日常跑的 linux,在 x230 上
要说我有什么痛点,目前没有
用的 ubuntu
有些库比如 sanic,win 不兼容。mac 不确定,linux 肯定没问题
程序需要运行在 win 上就用 win 开发,否则就是 mac,除非你对 mac 极其讨厌或者对 linux 有信仰。年纪轻轻干什么不好,为什么非要把时间浪费在配 linux 环境上呢?
讨论某个操作系统的血统问题 /或者够不够 geek,这是病,得治。
生产环境一致,别出一些诡异问题了,都不知道怎么死的。
linux 要什么配置?
web 相关的库出兼容性情况不多 但是 python 是个胶水语言 很多非纯 python 的库 都带了 c 的 lib 这就不好说了
考虑到*nix 系统的尿性 跟生产系统一致的 linux 才是正统
> 用 linux 才够 geek
说明你还不够 geek,不会用 linux。
要么老老实实学一下 linux 基础。要么老老实实用 mac。
> linux 下 pyqt 写的程序默认无法直接输入中文
你使用姿势的问题,了解一下动态库和 qt platform input plugin 等基础知识吧。
用的 Arch,SS 用的 MEOW,所有海外流量全部代理
docker 万岁
Ubuntu 下的 PAC 我还没弄会呢,楼主会了可以开个教程,ss 感觉在 Ubuntu 上就是个壳子。
windows 不好用 docker 吧
迫于穷,我大学也是这样想的。期间装了很多发行版。
工作后,立马叛逃到 mac 了。
win 读写中文有编码问题,py3 好像好些了,不过开发环境是 py2,所以一直用 linux 写,而且部分库对 linux 支持比 win 好。 传文件的问题可以用手机 qq 接,usb 从手机里拿。ss 问题,一台手机或路由器做中转完事,闲功夫折腾转发。没用过 mac,或许有图形界面,各种完善的工具,可能会更好些吧
我用 linux 虚拟机。反正如果计算量大我就放到组内服务器去跑。
full time linux 一年了。
我用 debian。没发现有那么多问题。有问题的都能自己解决。
嗯,可能,需要换 Go 吧。跨系统编译,(逃。。。。
Mac 还好吧,有 QQ,有微信,又有终端。没啥正统不正统的(不过,我还是更喜欢 linux 些)
Windows 下 Python,反正用的不舒服。
目前 linux 下为主,Windows 为辅。
Linux 下的问题:
1. qq,我用 vbox,装 xp,里面开 QQ。其实还好,XP 精简,不怎么卡。
2. 微信,网页版。
3. ss 的 PAC 模式,这个一般,我就自己收集下。保存到个文件,然后,就导入到代理的配置里面去就好了。
其实更主要是,什么用的不爽,Linux 下自己折腾到自己爽为止。其他系统不太好搞啊
等 mbp2018.。。
只针对 python 来说,用习惯了都一样.
引申来看的话,只是 windows 支持的 GUI 客户端多一些,linux 支持的 service 多一些.
譬如
- linux 上的很多 GUI 客户端只能找跨平台的,sourcetree 只支持 mac 和 windows.
- redis 原生支持 linux, windows 的话只能在 github 上找 windows porting.
另外还取决于项目,有一些项目只支持 linux… 譬如 ralph
目前还没听说哪个项目只支持 windows 的.
win+Linux 虚拟机了解一下
三个平台都用过,docker 万岁
写的时候的代码补全也依赖环境吧,所以你在 win 下也是安装一套 Python 环境吗?
真·解决方案:Vagrant
说 Docker 的,Docker 不是为开发做准备的,而 Vagrant 是。
当然我这种玩游戏的懒人选择 Win10 + WSL
最好的方式 win10+虚拟机。虽说 mac 也有虚拟机,但周边日常软件始终丰富度不如 win。
mac 和 linux 用起来都很顺,windows 没法用
说 docker 的又没让在容器内开发。
只是在容器跑测试环境而已。
总的来说 mac > win10 > linux
我都用过很久
win10 可以在自带的 ubuntu 上跑测试 也可以在 docker 里跑。
真工程师是不会被这些束缚的
我公司开发用 Win+Cygwin,Ubuntu 原生
在家用 Mac
win 编码问题,没解决。
arch +1
有两 win,一 mac,一 arch
看起来你用 linux 的痛点就是没法转发文件,在三个系统里,这个是最容易解决的吧。ftp,邮箱,网盘哪一个解决不了。
N 年没用 qq 的人路过。
你看电影美剧里,程序员用 macOS 的比例可不少,比如碟中谍,硅谷,黑客军团这些,macOS 可是很 geek 的,看你怎么用了
各位大佬,我是一个新手自学者……目前试图在 mac 下面装 Python3 的时候遇到了这个问题:
https://stackoverflow.com/questions/49093290/attempted-install-of-python-3-via-homebrew-fails-on-mac-os-x-sierra
请问该如何解决。。
用什么系统都可以啊,解决问题就好。我个人一般生活和开发用 windows。然后代码托管、maven 服务器等一系列工作或者自己需要的服务,跑在额外的一台配置很低的 linux 上面。
服啦。ubuntu 写 python 不是美滋滋么?有啥痛点,搞不懂。
如果你 GIT 用得很 6,至少会 HOOK 啊,Pythcharm 的环境管理远程调试部署,会 wmare ESXi,docker,云平台操作。
LINUX 和 Windows Server 都有搭建服务的能力。
我不信你会有什么痛点。
总结一下,你的痛点来自于你自身技术水平的限制性,不要怪操作系统。
不是提示了么:brew upgrade python
握手。我也是好多年没在 PC 上用过 QQ 了,下载文件都是 aria + 网盘
桌面环境和运行环境的操作系统是两回事,前者 mac > win >>>>>> linux,后者 linux=docker>>>mac>>>>>…>>>>>>win
所以懒得折腾选 mac+mac
学生没钱选 win+linux/docker
备选 mac+linux/docker
以上
#44 win32 binding
感谢。当时没敢升级是因为听说 Mac 会依赖自带的 python 2,怕升级引起问题。而且不知道为什么不能平行的安装 python 3。上午找文章看了看应该是没有这种担心的。
MacOS 是正统的 UNIX
docker 解决一切
用 pycharm 支持远程 python 解释器的功能
在 wsl(windows subsysyem linux)装 python,嫌弃 wsl 不好的话上 vps、虚拟机都行。
https://juejin.im/entry/59352f62ac502e0068b12630
我就是 Sublime 裸撸,然后 Syncthing 自动和 Linux 下的目录双向同步,直接在 Linux 下运行看结果。
Windows 上没有安装任何提示和运行环境。
不过我本来就不是 Python 程序员,所以可能参考意义不大。
搞两台机器,一台 Ubuntu,撸 Python,一台 windows 日常办公
在 windows 下写了 2 年 python 的默默路过。。。
装一个 pycharm 就可以了,虚拟环境,包管理,命令执行全部交给它就好。真心好用
感谢回复,那 debug 的情况是怎么处理的呢? logging 么 = =
mac 没痛点
在 win 下开发 Python 的是不是不要活了。。。
先做到自己人肉跨平台,程序才能跨平台
Linux/macOS 无痛
Win 很痛
macOS 是正统 UNIX。
我没用过 Linux 和 macOS 做开发,实际上我几乎不怎么开发,不过就我有限的经验来看,Windows 下的问题大多是很多人懒得支持 Windows 弄的,直接把自己的代码绑死在 UNIX/POSIX/Linux 上。
请一定要用 pycharm,不管你用什么系统,py 环境在哪里,pycharm 的远程编辑远程调试功能都可以帮你搞定
我们的 Python 程序都是跑在比较底层的,日常以打 log 为主。
我是 Ruby 程序员,不懂 Python,所以写 Python 的机会不是很多,一般打 log 就够用了。
初装 ubuntu,配置翻墙,我的顺序是: 去 githib 下 ss-qt,ubuntu 系统设置“全局”代理。然后就可以为所欲为配置了
请问是有纪大佬吗
其实你自己已经能找到最适合自己的一套环境了,只是年轻,瞎 jb 折腾,不需要发帖问别人
mac
呃,阁下是?
windows 下有 wsl 了
只是微不足道的路人罢了。。。唔。只是随手打开贴子就看到大佬表示有点小兴奋。。。
用了 Mac 才知道用 Windows 和 Linux 开发多么不舒服


