温馨提示:本文测试环境:windows11 64位、Python3.9。
摘要:本文将介绍在 Windows 系统中如何使用 Python 的第三方模块
droopy
实现在局域网中传送数据,仅限于别人上传文件给自己的功能,不具备下载功能。
droopy
模块是Python一个小型的 Web 服务器,可以用来搭建简单医用的文件传输服务,特备是在局域网中,可以直接开启相关的服务。droopy
是 Python 的第三方模块,因此需要另外安排相关的库。使用以下命令安装。
pip install droopy
我查了好些教程,都是教 Mac 和 Linux 系统的操作,包括官方的 GitHub 也是只说怎么进行 Linux 和 Mac 的使用,而 Windows 指向了另外一个链接,一来要,好不容易探了个头出去,发现链接已失效……
事实上,通过该方式没走通,可能有方法,不过目前没有“解惑”。
虽然直接安装的方式没有走通,也没有找到 Windows 的教程,但是仔细想想,其实“天无绝人之路”,官方的GitHub上还是有提供一个完整的droopy.py
的代码!实际上,有它就够了!
可以打开之后复制源码,本地新建一个 Python 文件,粘贴保存下来(注意文件名为droopy.py
),也可以下载所有文件,然后再去留。
获取到droopy.py
之后,新建一个要用于分享的文件夹,假设是D:\FileShare
,将droopy.py
复制一份放到该文件夹下,然后可以打开 命令提示符或终端,依次输入以下命令,每次输完回车:
xxx>E:
E:\>cd E:\FileShare
E:\Fileshare>python droopy.py
好了,已经成功开启相关服务。
下面介绍一些配置:
默认端口号为 8000,可以根据自己的需要进行修改,使用以下命令([port]
为端口号)。
python droopy.py [port]
默认的共享文件所在的路径就是当前执行命令的路径,如上图,我在E:\Fileshare
输入对应的命令,则局域网内的其他电脑就只能访问我的 E:\Fileshare
文件夹下的内容。
如果需要修改共享文件的路径,可以跟我上面展示的类似,通过切换路径再执行开启服务的命令,如果不想切换,可以使用使用以下命令([dir]
为共享文件路径):
python droopy.py -d [dir]
另外,还可以对共享的界面加上一些有趣的提示和美化,命令如下:
python droopy.py -m "<增加有趣的提示语>" -p '<增加图片地址>'
-m
后面加上对应的提示语,而-p
可以加上一个图片的链接,下面我做一个示例:
E:\Fileshare>python droopy.py -m "Xindata's FileShare" -p hello.png
1、python: can't open file 'E:\Fileshare\droopy.py': [Errno 2] No such file or directory
droopy.py
文件没有在E:\Fileshare
文件夹下,至少有三种方法可以解决:
E:\Fileshare
文件夹下,可能每一个用于分享的文件夹都需要该操作;droopy.py
文件的绝对路径,让命令找得到它;droopy.py
文件放到 Python 已添加环境变量的目录下,或单独给droopy.py
文件所在的路径添加到环境变量,添加方式参考:https://blog.csdn.net/qq_45476428/article/details/1138498392、TypeError('__init__() takes from 1 to 11 positional arguments but 12 were given')
这个是因为droopy.py
文件中的__init__()
方法只有11个参数,而其父类有12个参数,在参数传递过程中出现了一些问题,给droopy.py
文件中的__init__()
方法再多加一个参数即可,该参数不会影响droopy.py
文件代码逻辑,只要不和其他重名即可。如果不知道怎么改,可以参考使用我修改后的文件:Python 网络服务 droopy 模块源文件(免积分下载)。
3、droopy.py: error: argument port: invalid int value: "FileShare'"
这个是因为python droopy.py -m "Xindata's FileShare"
中不是使用双引号,而是单引号,修改为双引号即可。
4、[Errno 2] No such file or directory: 'E:\\hello.png'
这个是因为python droopy.py -p hello.png
中的图片使用了绝对路径,似乎绝对路径不行,使用相对路径则没问题,即使文件不是在E:\Fileshare
文件夹下。
启动服务成功后,就可以在浏览器中访问指定地址、指定路径中的文件了。
默认情况下,在浏览器输入以下命令回车即可查看
127.0.0.1:8000 # 或 http://127.0.0.1:8000
本地的地址,还可以使用 localhost
来替代,命令如下:
localhost:8000 # 或 http://localhost:8000
还有另外一种方式,就是在命令提示符或终端输入以下命令,回车,获取你的【IPv4 地址】替换上面的 127.0.0.1 也可访问。
ipconfig
上传文件特别简单,点击选择文件,如果需要同时上传多个文件,可以按住ctrl 键,再分别点击选文件,然后打开,发送即可。
本文介绍了在 Windows 系统中,使用 droopy
模块实现了在局域网中传送数据。
注意,droopy
模块仅支持文件的上传,不能下载。
<下章节介绍在局域网中实现上传下载的功能>
- End -