MacOS平台 python客户端使用指南
为了支持某些暂时无法顾及的平台,利用python的普遍支持特性,同时,我们也尝试了在macOS平台安装wxPython库的困难经历,因此,特意改用Python自带的TK集成图形接口,重新写了一个最简单的内网访问XFile服务器的客户端,解决部分平台缺少客户端,无法利用XFile专门优化的在线播放功能,
需求:XFile服务器端版本必须大于等于4.00 (2025.05.01版本) , 不支持第三方标准FTP服务器(因为标准服务器没有流映射功能)!!!
注意: XFilem只适合在安全的内网环境[例如家庭内部,公司内网等]下使用,它单纯的使用了标准FTP的明文登录,没有任何加密保护也默认不支持加密,因此不要在公网使用!! 它的开发目的也很明确,就是为了在macOS下有个能点播[浏览]XFile服务器上资源的的小客户端工具,事实上我们开发的XFileC客户端,是兼容macOS平台的,只需要对少数代码做一下分支处理,但是一来我没有多余macOS设备了,其次我目前也没有精力去迁移,因此快速折腾个python版小工具来实现,至于上传下载等,建议使用第三方的FTP客户端来完成. 这个小工具也兼容Windows和Linux,但是这两个平台我们都有配套的XFileC客户端了.
本指南的测试时间点是2025年8月,主要平台为intel平台的mac book pro 2018版 2019版 , macOS版本为14.x和15.x , 以及最新的 mac mini (m4) 乞丐版 , 版本为macOS 15.x ,均为主版本号下的最新版本 , 测试到的最早的版本是mac mini ,版本为macOS 10.13,如下图:
以下内容非常重要:
由于macOS自带的python版本过旧,无法使用python的TK库,因此,首先要做的一件事情是升级自带的python 3到最新. 这里, 无论是macOS 14还是macOS 15, 自带的python均为很旧的3.9.6 (均不是最新补丁) , 而目前3.9系列python的最后编译后发布版本是3.9.13 , 主版本和次版本相同,这是相同主版本的最后编译后发行版本,包含了intel和通用版两种,而目前的稳定支持大版本是3.12和3.13系列, (macOS自带的python3不会被删除或者覆盖,升级的python3事实上和系统集成的python3位于不同的目录,但是执行顺序是单独安装的python3优先), 直接去 https://www.python.org/ 官方网站下载,注意根据您的硬件是intel还是arm系列分别进行选择, [移动网络下载速度超快] , 注意: 如果您是intel cpu的mac系统, 可以选择相同主版本的 python 3.9.13 intel版, 文件名是 python-3.9.13-macosx10.9.pkg ,双击,一路默认确定就可以升级到最新的3.9.13版本,因为主次版本相同,因此兼容性没有问题,而arm 版本则建议安装 3.12或者更新的版本,在我们的测试中,3.9.13的通用版本在arm平台上存在严重的卡顿,而安装3.12版本通用版python则没有问题,以下是我们的总结:
intel cpu 版本的mac设备: 请单独下载最后一个intel 版 python 3.9.13 (3.9.13-macosx10.9.pkg) , 个人不建议下通用版, 因为在Intel平台上我没有测试通用版本,只测试了Intel专用版.
M1/M2/M3/M4 等 arm cpu 版本的mac设备: 请单独下载 3.13或者更新的版本,这个只有通用版,3.9.x版本arm平台存在严重的卡顿问题,因此推荐安装python 3.13.x版本.
在升级完python到最新补丁后,您需要将您下载的python版本xfilem解压到您的macOS电脑上,建议放置到下载目录xfilem子目录下,如下图:
然后,在文件夹上方鼠标右键,选择 新建位于文件夹位置的终端窗口,在打开的终端里输入 python3 --version ,注意是两个-字符,不是一个,观察输出的信息,如果命令输出的python3 版本是默认自带的 3.9.6 ,说明您还没有安装新版本的python3 , 或者安装不正确,请重新安装python3 . 正确的输出, intel版 macOS , 最低也是最后一个支持的版本是 3.9.12或者3.9.13 , 如果是 arm版 macOS, 则应该安装 3.13.x, 注意,arm版 macOS的3.9.x版本存在严重的卡顿,因此建议升级到3.12或者3.13系列.
xfilem也需要第三方播放器软件的支持,这里我们推荐安装 VLC macOS版本,vlc播放器上我们做了相对长时间的测试,此外mpv播放器也可以, 请选择对应版本进行标准的安装流程,我们默认在配置文件里对VLC播放器配置做了预留.
在VLC播放器软件安装完成后,请打开xfilem文件夹下的xfilemset.ini配置文件,这是个非常关键的配置文件,您需要在配置文件里,指定播放器程序的路径以及浏览器程序的路径,注意是完整的路径,而不可以象XFileC客户端那样只指定一个程序名,机制不同.如下图:
配置文件是utf8格式编码的纯文本,在macOS里可以直接编辑,分号开头的是注释语句,
s_serveraddr= 指定服务器地址 例如 192.168.1.3
s_username = 指定用户名
s_password= 指定口令
i_ftpport= 指定XFile服务器的FTP端口,默认是21
i_fontnum= 指定列表框字体大小,默认是10 根据自己的实际情况可以调整
还有一个参数这里的图片里没有显示,实际是支持的,就是语言设置 默认0 是中文,此外支持英语
i_language = 0 可以改成1,2等其他数字
s_playerprog= 指定播放器程序的完整路径,注意是完整路径,请根据不同操作系统进行填写,我们默认已经为windows/linux/macOS下的vlc播放器的默认位置做了预留,您只需要将对应操作系统下的位置前的;;;分号给去掉,把不对的用开头加分号给注销掉,就可以实现支持,注意,我们针对的是vlc标准的默认安装下的路径,否则请根据实际情况填写.
s_browerprog= 指定浏览器的完整路径,填写的方法与播放器的填写操作类似.
调整完毕后注意保存配置文件.
现在我们开始最简单的测试,先在 访达 下点击xfilem文件夹,点击最下面的菜单 新建位于文件夹位置的终端窗口 ,如下图:
现在我们可以在xfilem子目录下打开一个终端窗口,请输入 python3 ./xfilem.py
没有操作错误的话,将打开类似下面的程序界面,注意不要关闭终端窗口,因为这是个python程序. <如果没有升级python版本,则无法正确执行这个程序,一般会在终端下提示python3 tk库版本太低之类的错误>
现在我们已经学习了在终端命令行下,如何运行我们提供的点播客户端程序,先关闭xfilem这个应用,因为每次都在命令行下输入 python3 ./xfilem.py 毕竟有点麻烦,因此,我们将学习一个更好用的方法,注意,这是额外的,在继续这一步前,请务必保证命令行下已经能正确打开应用.
还是在xfilem子目录下进行操作, 如果您对命令行编辑软件如nano熟悉,可以直接在刚才的终端下输入 nano test1.command , 创建一个新的文本文件; 如果您对命令行编辑不熟悉,您可以使用文本编辑软件新建立一个纯文本文件,保存的时候指定名称类似test1.command, 注意,test1这个可以任意修改为您自己喜欢的名字,但是后缀必须是 .command . 然后,在编辑器里输入如下内容
#!/bin/bash
cd ~/Downloads/xfilem/
Python3 ~/Downloads/xfilem/xfilem.py
一共只有上面3行,如果您的实际位置和我说的相同 [也就是访达下的 下载 目录], 您可以直接抄写上面的三行到您的文本编辑器[或nano]里,直接保存退出就结束了.
第一行的意思是指定shell ,直接抄就可以
第二行, cd 到xfilem的实际目录所在位置,这里非常关键,必须用 ~指代当前用户的实际目录,但是如果您是将xfilem放置在了一个固定目录,则请根据实际进行修改,可以从访达里获取您的实际目录
第三行 Python3 xxxxxxxxx/xfilem.py 这是xfilem.py的实际目录,用~指代当前用户的实际目录,如果您不是放置在下载目录下,请根据实际情况修改
内容一共就三行,注意拷贝的时候不要带格式,否则会出错,然后保存退出就可以了.
现在,我们需要给刚才新建立的test1.command文件可执行权限 [注意,自带了一个xfilem.command,内容和这个是一样的,使用也一样,我们这里只是为了示范如何操作] , 在test1.command文件所在的xfilem文件夹[目录]上,鼠标右键菜单,在新的终端中打开,然后输入: chmod +x ./test1.command ,回车,然后使用命令 ls -ls看看test1.command文件是否具有可执行属性 ,如下图:
执行完成后,双击test1.command文件,没有问题的话,会自动打开一个终端,然后自动执行图形界面的python客户端xfilem, 不要关闭那个终端窗口,在这之后,您可以在桌面上为test1.command文件建立个快捷连接,这样以后可以直接双击快捷连接,就可以实现xfilem简易客户端的启动.
在使用中,您可能会因为各种误操作导致没有正确授权,万一失误,系统不会第二次弹出请求让你修改,导致程序无法正常运行,您可以手动修改设置,如下图:
万一操作失误,可以在设置里手动授权。
以下是使用不方便的地方,因为这本身就是个简易的点播客户端,加上macOS系统的进程管理调度机制与Windows不同,目前我们没有找到好的解决办法,那就是,在每次重新点播一个文件前,您应该,或者说必须先关闭前一个播放器进程如VLC,也许macOS有更好的方法来避免这个问题(如何强制启用一个全新的VLC进程而不是添加播放列表?),或者干脆添加一行额外的命令,但是无法保证所有第三方播放器软件有相同的行为和操作,但是我并不是非常熟悉macOS桌面操作,因此我给出的解决办法是,在点播下一个文件前,先 手动关闭前一个播放器进程如VLC,如下图:
正常的运行图可能如下:
返回上级目录,刷新列表,断开连接这三个功能是单独的按钮,可以通过拉动右下角来改变程序界面的大小,红色的是目录,绿色的是文件. xfilem.py是python3程序代码,包含了这个程序的所有python源代码,如果您想添加或者修改功能,请自行操作,直接双击视频或者媒体类文件,文本类文件则调用浏览器,如果配置没有错误,会自动转换流映射连接,然后通过子进程打开参数中设置的播放器程序进行播放,在macOS上,这个操作可能有3秒左右延迟. 如果您需要使用备份模式,那么在用户名后面添加.back就可以了,例如示范里,用户名是admin,改成 admin.back就变成了登录备份模式,但是功能依然只有点播和浏览,因为下载同步备份啥的功能都没有做进去.
macOS可能有更好的操作方法,但是我对macOS桌面的各种快捷操作和各种设置并不是很熟悉,上面的操作示范是我本人临时解决问题的方法,也许您有更好的办法, 比如用Automator等来替代command,比如能设置VLC等播放器自动结束进程或者强制重新打开新窗口等等,那么按您的方法来.
现在总结macOS使用流程
<1> 独立安装新版本的python
<2>安装类似VLC等播放器软件
<3>下载我们的python版客户端,并解压到 下载 目录下的 xfilem 子目录
<4> 根据实际情况调整xfilem 子目录下的 xfilemset.ini配置参数
<5>重新创建一个command文件,或者直接使用自带的xfilem.command , 如果位置等存在不同,需要调整改文件里的目录位置等; 如果不嫌麻烦,不使用command也行,可以直接在xfilem目录下的命令终端里,输入 python3 ./xfilem.py 来打开客户端.
<6>使用命令行给command赋予可执行权限, 例如 chmod +x ./xfilem.command
<7>双击command文件,如果一切正常将打开xfilem客户端,请注意第一次调用外部播放器,可能会请求访问网络资源的权限,您必须授权,如果没有授权,则运行失败,您需要手动去macOS系统里人工授权.
<8>在重新点播一个文件前,需要先手动从Docker拦里关闭播放器,第一次打开可能有3到5秒的延迟,是正常现象.
Xfilem客户端在macOS下的使用视频==> 点这里
2025.09.08额外补充: 文中提到的需要手动强制关闭VLC的麻烦,已经找到了解决办法,如下图: 在 播放 的弹出菜单里,勾选子菜单 播放后退出 , 这样当关闭vlc的时候会直接退出,不需要手动强制退出了,但是这个仅仅针对vlc有这个设置,其他播放软件未知.
xfilem.py同样可以支持Linux和Windows 系统,但是这些平台已经有我们配套的全功能XFileC客户端了,因此仅推荐想自己扩展功能自己折腾的用户使用。
Linux平台下,默认安装了python3,但是没有安装tk库, 使用命令 sudo apt install python3-tk ,先安装python3的tk库,不同发行版本如redhat系需要使用yum指令安装,请根据实际情况进行操作,其他操作和macOS类似, 下载xfilem压缩包,解压到linux系统,建议在主目录下,先修改配置文件,然后打开终端输入python3 ./xfilem.py ,就可以打开客户端了[注意大小写]。在播放下一个媒体文件前,也应该人肉关闭视频播放器如mpv或者vlc, xfilem 在开放麒麟2 和 ubuntu 18.04等系统下测试通过.
Windows平台下,默认没有安装python3, 去官方网站下载最新版本的python3,安装,下载xfilem压缩包后解压,先修改配置文件xfilemset.ini,根据实际情况修改,然后直接双击里面的xfilem.pyw , 就可以直接打开xfilem客户端了,注意这是windows系统专有的便利,其他两个系统上目前无法实现。