3D打印机宿主软件
项目描述
PRINTRUN
Printrun由一组3D打印机和其他CNC机器(printcore、pronsole和pronterface)的宿主程序以及一些有用的脚本组成。
- printcore.py是一个库,它使编写RepRap宿主程序变得容易
- pronsole.py是一个具有自动补全功能的交互式命令行宿主程序
- pronterface.py是一个具有与pronsole相同功能的图形宿主程序
本文件的章节组织如下
获取PRINTRUN
Printrun的安装可以通过多种方式完成,例如安装预编译的二进制文件、通过官方仓库或PyPI的特定发行版软件包。如果您想要最新的功能,可以从源代码运行Printrun。从这里运行Printrun。
分发二进制文件和包
Windows和macOS预编译的二进制文件
所有内容都捆绑在一个单独的包中,易于安装。下载地址:https://github.com/kliment/Printrun/releases/latest
OSX用户注意:如果OSX告诉您“pronterface.app”无法打开,因为开发者无法验证”,您不需要重新下载。相反,您需要允许OSX运行未签名的应用。为此,在Finder中右键或按住Ctrl点击应用,然后选择
打开
。然后在出现的弹出窗口中点击打开
。您只需要这样做一次。
来自官方仓库的Linux包
Ubuntu / Mint / Raspberry Pi OS / Debian
安装完整套件:sudo apt install printrun
或仅安装您需要的应用程序:sudo apt install pronsole
或 pronterface
或 plater
Chrome OS
您可以通过crouton使用Printrun。假设您想安装Ubuntu Trusty,您可能使用过sudo sh -e ~/Downloads/crouton -r trusty -t xfce
来安装Ubuntu。使用上面针对Ubuntu/Debian提供的行获取和安装printrun。
默认情况下,在Chrome OS crouton下,您无法访问串行端口,因此无法连接到您的3D打印机。请将您添加到Linux环境中的串行组以解决这个问题
sudo usermod -G serial -a <username>
其中 <username>
应该是您的用户名。注销并重新登录以使此组更改生效,并允许与打印机的通信。
Fedora
安装完整套件:sudo dnf install printrun
或仅安装您需要的应用程序:sudo dnf install pronsole
或 pronterface
或 plater
将
--enablerepo updates-testing
选项添加到dnf
有时可能会给您提供更新的软件包(但也可能未经充分测试)。
Arch Linux
软件包可在AUR中找到。只需运行
yaourt printrun
PyPI上的Printrun包
如果您有一个工作状态下的Python环境,无论您的操作系统是什么,您都可以使用pip通过PyPI仓库安装最新发布的版本,并可选地(但强烈推荐)使用虚拟环境。
激活您的虚拟环境,然后在(Linux / macOS)中运行
python -m pip install Printrun
或(Windows)
py -m pip install Printrun
从源运行
通过从源代码运行Printrun,您可以访问最新的功能和开发中的更改。警告:这些可能不完全工作或不稳定。
Linux / macOS
1. 安装Python
几乎所有的Linux发行版都预装了Python。如果没有,从您的包管理器正常安装Python。在macOS上,从python.org下载并安装最新的Python。
2. 下载最新的Printrun源代码
通过在终端窗口中运行以下命令获取最新源代码
$ git clone https://github.com/kliment/Printrun.git # clone the repository
$ cd Printrun # change to Printrun directory
3. 使用Python虚拟环境
从源代码运行Printrun的最简单方法是在Printrun的根目录中创建并使用Python 虚拟环境。这一步是可选的,但强烈推荐以避免与系统中已安装的(或将安装的)其他Python库发生冲突。在Printrun的根目录中,通过运行以下命令创建和激活虚拟环境
$ python -m venv venv # create a virtual environment
$ source venv/bin/activate # activate the virtual environment
Ubuntu/Debian的注意:您可能需要先安装
python3-venv
。
Ubuntu/Debian的注意:如果您收到“python: command not found”错误,请使用
python3 -m venv venv
代替。
4. 安装Printrun
一旦激活了您的虚拟环境,请使用以下命令安装 Printrun 的源代码:
(venv) $ python -m pip install .
针对 Linux 用户请注意:wxPython4 在 Python 包索引中还没有可用的 Linux 轮子。在运行上述命令之前,请在 extras.wxpython.org 找到适合您发行版的正确轮子,并将以下示例中的链接替换。您可以跳过此轮子安装,但这会导致从源代码编译 wxPython4,这可能耗时且消耗资源,并且可能会失败。
(venv) $ python -m pip install https://extras.wxpython.org/wxPython4/extras/linux/gtk3/fedora-27/wxPython-4.0.1-cp36-cp36m-linux_x86_64.whl # replace the link with yours
5. 运行 Printrun
保持虚拟环境激活状态,调用所需的程序,如下所示:
(venv) $ pronterface.py # or `pronsole.py` or `plater.py`
Windows
首先下载并安装 GIT for Windows、Python 3.10 和一个 C-编译器环境。接下来,我们需要一个 CMD 窗口或 PowerShell 窗口。您也可以使用 Windows Terminal。创建并导航到您选择的目录,其中您想要下载此存储库的源文件,并按照以下步骤操作:
CMD
> git clone https://github.com/kliment/Printrun.git
> cd Printrun
> release_windows.bat
PowerShell
> git clone https://github.com/kliment/Printrun.git
> cd Printrun
> ./release_windows.bat
上述脚本将克隆此存储库。脚本 release_windows.bat
将安装名为 v3 的虚拟环境、下载所有必要的 Python 库,并编译 Pronterface.exe 和 Pronsole.exe 的二进制文件。您将在新创建的目录 dist
中找到这些文件。您可以在 release_windows.bat
脚本中找到更多和更详细的信息。从二进制文件或通过调用 pronterface.py(用于 GUI 版本)和 pronsole.py(用于命令行版本)从源代码运行 Pronterface 或 Pronsole。
通过在 WindowsTerminal 中运行 Pronsole 来运行 Pronsole 效果最佳。您可以为 pronsole.exe 创建一个桌面快捷方式链接。然后,按照以下示例编辑您的快捷方式的目标:%LocalAppData%\Microsoft\WindowsApps\wt.exe --title Pronsole %USERPROFILE%\Downloads\pronterface-test\pronsole.exe
您需要调整 pronsole.exe 的位置路径。
每次进行更改或更新时都运行 'release_windows.bat'。每次新运行时,它都会编译二进制文件,并在需要时更新虚拟环境中涉及的库。如果遇到问题,请删除虚拟环境。
使用 PRINTRUN
使用 PRONTERFACE
设置好 Printrun 后,您可以在解压的目录中运行 pronterface.py。从第一个下拉菜单中选择您正在使用的端口号,选择您的波特率,然后连接。加载 STL 文件(有关 skeinforge 的说明见下文)或 GCODE 文件,然后您可以将其上传到 SD 卡或直接打印。如果启用“监控打印机”功能,则每 3 秒检查一次打印机状态(温度、SD 打印进度)。命令框识别所有 pronsole 命令,但没有自动完成功能。
如果您想加载 STL 文件,您需要安装一个切片程序,如 Slic3r 或 Skeinforge,并将其路径添加到设置中。
Slic3r 集成
要从 Pronterface 直接调用 Slic3r,您的切片命令(在 设置 > 选项 > 外部命令 > 切片命令)应类似于 slic3r $s -o $o
。如果 Slic3r 正确安装,“slic3r”就足够了,否则,将其替换为 Slic3r 可执行文件的完整路径。
如果选中了 Slic3r 集成选项(在 设置 > 选项 > 用户界面 > 启用 Slic3r 集成),则在应用程序重启后会出现一个新菜单,允许您从之前保存的 Slic3r 打印/材料/打印机设置中选择。
使用 PRONSOLE
要使用 pronsole,您需要
- Python 3(理想情况下 3.10),
- pyserial(或在 ubuntu/debian 上的 python3-serial)和
- pyreadline(在 Linux 上不需要)
启动 pronsole,您将看到一个命令提示符。键入 help 查看可用的命令。所有命令都有内部帮助,您可以通过键入 "help 命令名称" 来访问,例如 "help connect"。
如果您想加载stl文件,您需要将一个版本的skeinforge(任何版本均可)放入名为"skeinforge"的文件夹中。"skeinforge"文件夹必须与pronsole.py在同一文件夹中。
使用PRINTCORE
要使用printcore,您需要Python 3(理想情况下3.10)和pyserial(或在ubuntu/debian上的python3-serial)。请参阅pronsole以获取功能齐全的主机示例,或在printcore.py的底部查看简单的命令行发送者,或以下代码示例。
#to send a file of gcode to the printer
from printrun.printcore import printcore
from printrun import gcoder
import time
p=printcore('/dev/ttyUSB0', 115200) # or p.printcore('COM3',115200) on Windows
gcode=[i.strip() for i in open('filename.gcode')] # or pass in your own array of gcode lines instead of reading from a file
gcode = gcoder.LightGCode(gcode)
# startprint silently exits if not connected yet
while not p.online:
time.sleep(0.1)
p.startprint(gcode) # this will start a print
#If you need to interact with the printer:
p.send_now("M105") # this will send M105 immediately, ahead of the rest of the print
p.pause() # use these to pause/resume the current print
p.resume()
p.disconnect() # this is how you disconnect from the printer once you are done. This will also stop running prints.
PLATERS
Printrun提供两个plater:STL plater(plater.py
)和G-Code plater(gcodeplater.py
)。
3D查看器控制
当3D查看器启用时,控制方式如下
- 鼠标滚轮:缩放(控制键减少缩放变化步数)
- Shift+鼠标滚轮:探索层(在打印gcode视图中;控制键使层变化以10为单位而不是1)或旋转对象(在platers中)
- 左键点击拖动:旋转视图
- 右键点击拖动:平移视图
- Shift + 左键点击拖动:移动对象(在platers中)
- Page up/down键:缩放(控制键减少缩放变化步数)
- 上/下键:探索层
- R键:重置视图
- F键:适应视图以显示整个打印
- C键:切换“仅显示当前层”模式(在打印gcode视图中)
RPC服务器
pronterface
和pronsole
启动一个RPC服务器,默认在localhost端口7978上运行,提供打印进度信息。以下是一个查询打印状态的Python脚本示例
import xmlrpc.client
rpc = xmlrpc.client.ServerProxy('http://localhost:7978')
print(rpc.status())
配置
构建尺寸
可以使用build_dimensions选项指定构建尺寸(可以在Pronterface设置中进行图形编辑)。此选项由9个参数组成:3个用于构建体积尺寸,3个用于构建体积坐标系统偏移最小值,3个用于限位开关位置。
默认值是200x200x100+0+0+0+0+0+0
,这对应于200x200mm(宽x高)的床板,Z方向上有100mm的行程(前三个数字),没有偏移。绝对坐标系统原点(0,0,0)位于床板表面的左下角,床板表面的右上角是(200,200,0)。
常见的做法是将坐标系统的原点(0,0,0)放在床板表面的中心。这可以通过使用下三个参数实现,例如使用200x200x100-100-100+0+0+0+0
。在这种情况下,床板的左下角将位于(-100,-100,0),而右上角将位于(100,100,0)。
这两组设置对于大多数人来说应该足够了。然而,对于某些特定复杂的设置和GCodes以及一些功能,我们可能还需要完美的显示所需的限位开关位置。这些位置(通常为0,0,0,所以如果您不知道,您可能有一个标准设置)是以绝对坐标指定的,所以如果您床板从(-100,-100,0)开始,限位开关在床板左右各10mm处,Z限位开关在床板上方5mm处,您将希望将限位开关位置设置为(-110,-110,5)。
使用宏和自定义按钮
pronsole和pronterface中的宏
发送简单的G-code(或pronsole命令)序列就像在宏定义中逐个输入它们一样简单。如果您想为宏使用参数,请用{0} {1} {2}等替换它们。
所有宏在输入后立即自动保存。
示例1,简单的一行别名
PC> macro where M114
您不必记住查询位置的代码,可以查询位置
PC> where
X:25.00Y:11.43Z:5.11E:0.00
示例2 - 使用“set”命令在不同切片程序之间切换的宏
PC> macro use_slicer
Enter macro using indented lines, end with empty line
..> set sliceoptscommand Slic3r/slic3r.exe --load slic3r.ini
..> set slicecommand Slic3r/slic3r.exe $s --load slic3r.ini --output $o
Macro 'use_slicer' defined
PC> macro use_sfact
..> set sliceoptscommand python skeinforge/skeinforge_application/skeinforge.py
..> set slicecommand python skeinforge/skeinforge_application/skeinforge_utilities/skeinforge_craft.py $s
Macro 'use_sfact' defined
示例3,简单的参数化宏
PC> macro move_down_by
Enter macro using indented lines, end with empty line
..> G91
..> G1 Z-{0}
..> G90
..>
调用宏以将打印头向下移动5毫米
PC> move_down_by 5
为了更强大的宏编程,可以使用前面带有!符号的Python代码转义。请注意,此Python代码调用也适用于交互式提示
PC> !print("Hello, printer!")
Hello printer!
PC> macro debug_on !self.p.loud = 1
Macro 'debug_on' defined
PC> debug_on
PC> M114
SENT: M114
X:0.00Y:0.00Z:0.00E:0.00 Count X:0.00Y:0.00Z:0.00
RECV: X:0.00Y:0.00Z:0.00E:0.00 Count X:0.00Y:0.00Z:0.00
RECV: ok
您可以使用宏命令本身来创建简单的自修改或切换功能
示例:交换两个宏以实现切换
PC> macro toggle_debug_on
Enter macro using indented lines, end with empty line
..> !self.p.loud = 1
..> !print("Diagnostic information ON")
..> macro toggle_debug toggle_debug_off
..>
Macro 'toggle_debug_on' defined
PC> macro toggle_debug_off
Enter macro using indented lines, end with empty line
..> !self.p.loud = 0
..> !print("Diagnostic information OFF")
..> macro toggle_debug toggle_debug_on
..>
Macro 'toggle_debug_off' defined
PC> macro toggle_debug toggle_debug_on
Macro 'toggle_debug' defined
现在,每次我们调用“toggle_debug”宏时,它都会切换调试信息的开启和关闭
PC> toggle_debug
Diagnostic information ON
PC> toggle_debug
Diagnostic information OFF
当在宏中使用Python代码(使用!符号)时,甚至可以使用块/条件/循环。可以将Python代码与pronsole命令混合使用,只需保持Python缩进。例如,以下宏与前面的示例类似地切换诊断信息
!if self.p.loud:
!self.p.loud = 0
!print("Diagnostic information OFF")
!else:
!self.p.loud = 1
!print("Diagnostic information ON")
宏参数可用作'!'转义Python代码中的本地定义列表变量:arg[0] arg1 ... arg[N]
所有Python代码都在pronsole(或PronterWindow)对象的上下文中执行,因此可以使用所有内部变量和方法,这提供了大量的功能。但是,内部变量和方法并没有得到很好的文档记录,并且可能会随着程序的开发而发生变化。因此,最好使用包含所需大多数功能的pronsole命令。
一些仅适用于Python模式的变量
!self.settings - contains all settings, e.g.
port (!self.settings.port), baudrate, xy_feedrate, e_feedrate, slicecommand, final_command, build_dimensions
You can set them also via pronsole command "set", but you can query the values only via python code.
!self.p - printcore object (see USING PRINTCORE section for using printcore object)
!self.cur_button - if macro was invoked via custom button, the number of the custom button, e.g. for usage in "button" command
!self.gwindow - wx graphical interface object for pronterface (highly risky to use because the GUI implementation details may change a lot between versions)
一些有用的方法
!self.onecmd - invokes raw command, e.g.
!self.onecmd("move x 10")
!self.onecmd("!print self.p.loud")
!self.onecmd("button "+self.cur_button+" fanOFF /C cyan M107")
!self.project - invoke Projector
使用主机命令
Pronsole和Pronterface的控制台界面接受许多命令,您可以直接使用或将其放入G-Code中。要从G-Code中运行主机命令,只需在前面加上;@
即可。
可用命令列表
pause
:暂停打印,直到用户恢复run_script scriptname [arg1 ...]
:在主机计算机上运行自定义脚本或程序。例如,可以在具有beep
工具的机器上使用run_script beep -r 2
来警告用户,或者在打印结束后发送电子邮件或短信。可以在参数中使用$s令牌来获取当前gcode文件名run_gcode_script scripname [arg1 ...]
:与run_script
相同,但脚本显示的所有行都会依次被解释(因此G-Code行将立即发送到打印机)shell pythoncommand
:运行Python命令(也可以通过执行!pythoncommand
来实现)set option value
:设置选项的值,例如set mainviz 3D
connect
block_until_online
:等待打印机在线。例如,您可以通过以下方式启动pronsole、连接打印机并等待其在线以开始上传object.gcode
文件:python pronsole.py -e "connect" -e "block_until_online" -e "upload object.gcode"
disconnect
load gcodefile
upload gcodefile target.g
:将gcodefile
上传到SD卡上的target.g
slice stlfile
:切片stlfile
并加载生成的G-Codeprint
:打印当前加载的文件sdprint target.g
:开始SD打印ls
:列出SD卡上的文件eta
:显示剩余打印时间gettemp
:获取当前打印机温度settemp
:设置热端目标温度bedtemp
:设置床的目标温度monitor
:在打印期间监控打印机进度tool K
:切换到工具Kmove xK
:沿x
轴移动(也适用于其他轴)extrude length [speed]
reverse length [speed]
home [axis]
off
:关闭风扇、电机、挤出机、加热床和电源exit
测试
在tests
文件夹中开发了一个小的(正在进行中)测试套件,使用unittest,可以使用它运行(需要Python 3.11+)
python -m unittest discover tests
在testtools
文件夹中也提供了一些用于测试/调试通信或g-code读取/写入的小工具。
贡献
想要为Printrun做出贡献?太棒了!谢谢!❤️
Printrun是一个开源项目,我们乐于接受任何人的贡献。有多种方式可以做出贡献
-
改进文档。这个README文件是我们的主要文档来源,但肯定有些地方需要更多的关爱,或者需要更新。
-
提交错误报告和功能请求。
- 我们使用GitHub的问题跟踪器来跟踪它们。
- 请记住,在新的问题中说明您的操作系统和Printrun版本。
-
改进测试代码库。当前的代码覆盖率非常低。更多信息请见测试部分。
-
修复现有问题或实现请求的功能。有许多已知问题和大量待实现的功能请求。我们(维护者)没有时间和资源去查看所有这些,所以每个代码贡献都将非常受欢迎。
贡献者
很多人帮助制作了Printrun。请参阅此处的列表。
许可证
Copyright (C) 2011-2024 Kliment Yanev, Guillaume Seguin, and the other contributors listed in CONTRIBUTORS.md
Printrun is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Printrun is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Printrun. If not, see <https://gnu.ac.cn/licenses/>.
所有脚本都应包含此许可证说明,如果没有,请随时联系我们。请注意,对于难以包含此许可证说明的文件(例如图像),它们是在相同条款下分发的。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。
源分布
构建分布
printrun-2.1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f984c0bec8b56c4c4ad36f87f6934d74e4ff2732c0e5e87617039888d0d85d28 |
|
MD5 | 41c9dfeb44fbfd63ef43151683660572 |
|
BLAKE2b-256 | c565cdafb2bd2b23db48b79b749506a5c0504bbbae15d021e429b596a6186187 |
Printrun-2.1.0-cp312-cp312-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 74bdc98b616c30db72efe698dca9c3f818eaa4f83b877ff0126b668878c41b46 |
|
MD5 | fca14cd5a0c79b2ae5ac5fb4c8a3c682 |
|
BLAKE2b-256 | ac8adc8bde6a57ef187f43b98909c1f9b0c7f4574960cfe958e1546e0a2ee1a2 |
哈希值 用于 Printrun-2.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 21058aae35fac7bc367eee9ddfc33f3eb5254e3dd1be453d24bb2045274ccf8b |
|
MD5 | b86d750333ed6cc2e1df5f036bf33055 |
|
BLAKE2b-256 | 2674ee7a38be54813505e813b0f942c4715248eb1f6088f707f006efefc44f57 |
哈希值 用于 Printrun-2.1.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c6191036f21e395713425925bc57da320db55cf5b441bd5af0a7fb019c4ebf52 |
|
MD5 | 927d4d85f2e19f380979881fbea71aa5 |
|
BLAKE2b-256 | 32d77f5676251e1a28da59b5480b37e409440f8e55f5a594cfe1f8d434f34caa |
哈希值 用于 Printrun-2.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 75cf851f8d40f739f3327901ca83173b0477491a125e2ec82b8a154ed8ff2db8 |
|
MD5 | 85896c06ea74704f4c08457ce9f62792 |
|
BLAKE2b-256 | ae295a81eab2a4e5026aa305704e94479c97b50c3a322c76d521a05183aaacab |
哈希值 用于 Printrun-2.1.0-cp312-cp312-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | af35de64c22de58f1c555fb857e59ec097c4196987f8585e4444503186e67137 |
|
MD5 | 112aef46349c79a9205d85e84776e247 |
|
BLAKE2b-256 | e51e91c77402f312d15034d59671dece42c57ff85118a722ab92de8092127b5e |
哈希值 用于 Printrun-2.1.0-cp312-cp312-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2851c103612a8f6936b939fb5709331fb0b093d2b6914c8081826c16d8155a03 |
|
MD5 | 88b502e740feffe6ac735c460fbad027 |
|
BLAKE2b-256 | 8e85ea0a030e89a74e6082e6eb6feb3dde6320f6da592d57e4cbf19c1386ab23 |
哈希值 用于 Printrun-2.1.0-cp312-cp312-macosx_10_9_universal2.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2363cc0056ab4bdd58c527488d5a9bc5732e025f1e4389f750a4c3e6bce51f2b |
|
MD5 | aa20dccd25eea19af72944db672df512 |
|
BLAKE2b-256 | 21a35e2e10f7ce5eea7fedb6b25a11ff81e5977b22c0f7cf8e7fbc6b7baf0963 |
哈希值 用于 Printrun-2.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | da54b898821bfd8aeb443ab0bb568cc230ac1a59bb396b0d457be7b2986c4285 |
|
MD5 | 5fd3f5c0f84b9c210131eee56ed701b6 |
|
BLAKE2b-256 | 1259b1ce0c6caba5bcb31c2a8f0ce0ecfa24fc82a408d9c7a1002e81a02a2239 |
哈希值 用于 Printrun-2.1.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b0189d87c377cb6c6e3150d9857cdc7cf4d9e12cb624474bb533ee568f8e3585 |
|
MD5 | 92275e25db31b72758611e05c41fc4c0 |
|
BLAKE2b-256 | c6b1efd822de5395db56522ecfa644a838a880b563db4ef9122ac633b058a0bd |
哈希值 用于 Printrun-2.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | db3ddafdf3f6e13e6e2fe1694d43743dc9e38f58acfc71bb1829174826a2e86d |
|
MD5 | 66414da8794143a935c7a35a5c7fca29 |
|
BLAKE2b-256 | e8adfca10747006e6f342130acdad4b4ca87d218ad00d4e20c203395a785692b |
哈希值 用于 Printrun-2.1.0-cp311-cp311-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2833fdd38161abe480df4d95d97bdfaefae314aa005de71b44a48b53ae789c0a |
|
MD5 | 44b54c2db091f25074909bb70735f777 |
|
BLAKE2b-256 | b207f43a307dbce628dfe8fe4a739856bfd4bbbd9cf660287b6c6925a7a85d8a |
哈希值 用于 Printrun-2.1.0-cp311-cp311-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 17f9d139a07d176ae31ee0f01a19bc7fce6850f56f766486da1e1f8161b837d2 |
|
MD5 | b0e7eb3fd007d4fd0f90ca81c12df754 |
|
BLAKE2b-256 | fb7c51c51f586266c9d2c7797f7e1c6642f42463438177b6bfe609bff994c8d6 |
哈希值 用于 Printrun-2.1.0-cp311-cp311-macosx_10_9_universal2.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dff7ad0eb67796c6269ad33ac34c4dacef8116579c7ab4ee3a18110f6b206b15 |
|
MD5 | 03b0fea5be9f5bf5b47ed55fca052c60 |
|
BLAKE2b-256 | 2b94dad65231cb90942fc532bcb0b6c013d0e909402d41073f9899d8648e8de2 |
哈希值 用于 Printrun-2.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5f9fb6426b59104323269846d114da4e6007d9daa5e9b04412791f3b743e5b4a |
|
MD5 | fc48451e08a7119192270924c2130521 |
|
BLAKE2b-256 | fa18cdac800d4e6fb3712768434e1f78025e117f1781a4b14b9c6ddcc09f1e8b |
哈希值 用于 Printrun-2.1.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c8c6e5aebeefa015d9ac782bfdd228a603bfabae65f95a01c6e8fa4f30bd19c0 |
|
MD5 | f378ee058c538d96eb9887bd5c46fae6 |
|
BLAKE2b-256 | 3405e52270ac929c5f1bcfb57bd92945b7daf63e6eda66e476cf96aea8b51c67 |
哈希值 用于 Printrun-2.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 59ad697a85ab037e78cbe24d03c5c9e83cc9e85ba0555fd84e50fff687535a6a |
|
MD5 | 01e4c0379242c50306b42c5f3bc4fd32 |
|
BLAKE2b-256 | c1913d0de7f630a0c02fa3745d313b7852d4040e94bf6b067305ad431a587a61 |
哈希值 用于 Printrun-2.1.0-cp310-cp310-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 39dc37a20d7c264fb210ebfa98c84ad100cc33ea956c0c6e06f6b9cc2506c292 |
|
MD5 | c8a3be0cfcdfa4a4d3bbbfda1253da12 |
|
BLAKE2b-256 | 4ec7ba7ac21bf8f8e00c3fecc0c12cf84d51d16e18ded45ab50c2a667c1c3f87 |
哈希值 用于 Printrun-2.1.0-cp310-cp310-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6818a37a87163996d57b14eafc40d8aec5da107e71a9512b96c69fb797e67ee4 |
|
MD5 | 9820f4b47cfafcb56fb8975917995615 |
|
BLAKE2b-256 | 3cbd0809ddff9673eb08e67e1551dec5d9a408e25c1c27e5d9ad4311da0ae2e1 |
哈希值 用于 Printrun-2.1.0-cp310-cp310-macosx_10_9_universal2.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | db047eef3e86e6e3b6e74c42fdca67fcd98e757b2a7e040d333aafe63942714a |
|
MD5 | 8da58177568b70fd903b30046fcb4db9 |
|
BLAKE2b-256 | 681abe6287ee74f2eecf551067bd26316f1c648137417cb833363428c7090734 |
哈希值 用于 Printrun-2.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 15d770f8e55e45da424bc5cb456c65a5e10abc4b2c0bdc8ae5bcc08d550e0597 |
|
MD5 | 0d71f9bafe0094fe7c20e7ea35a60f74 |
|
BLAKE2b-256 | 625aad413efa37d98dcbf9157a68eeef373b3936533664f444374a9fb73be3ad |
哈希值 for Printrun-2.1.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 601d1ea114ba21708c9a8979da160389d339926ec8639b5138f0fafde1dbe47a |
|
MD5 | 554631f3894c4aac8a4de45ec0cd8945 |
|
BLAKE2b-256 | 65a433110de6013d0c49b146c9ac4e5b538a26f3d5c68256b7a6fb84543ffddd |
哈希值 for Printrun-2.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3a3fa8d259dcc3d80858d3ee38adc3e9f59d923a58f9aaf5069ff79d63327653 |
|
MD5 | b78b74a7d393efb3d6a94c56bf884e52 |
|
BLAKE2b-256 | ae0981b8722f081bf8ef778523ad6cb23fe2e913934dc7993ef9f2df53422adf |
哈希值 for Printrun-2.1.0-cp39-cp39-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e55eb3fae309b7e6bd7eae4ad00989b98bc801e8af3b1add445bf821afc6cd96 |
|
MD5 | a71867841cd24691a04eb9f59454a372 |
|
BLAKE2b-256 | 1b8b247850916cbf727b91d6b38a86b82bf40918f121a88dd33d7bf0eba98284 |
哈希值 for Printrun-2.1.0-cp39-cp39-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7a2fee148f424c568e943c02aac31c498fbe2ffa104fc5233d457a8c44a65576 |
|
MD5 | 565ea1767cce90aa77bb462d011c935b |
|
BLAKE2b-256 | e8321739c3cbe77ea7c6f60d3fa75da864a2ad7752aefdcc4bc73347151c4f84 |
哈希值 for Printrun-2.1.0-cp39-cp39-macosx_10_9_universal2.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bb79ae58f9ab6dff26b973cf743c1888fffdf108fb5ddbfc25dc514facea7f3b |
|
MD5 | cb1a70b5cfa792cc8a41126b6c4e2c08 |
|
BLAKE2b-256 | f66c35002ec41df4ceeb54fe2c7904ed8ac72b9665f85b11b05bf05d187ca702 |
哈希值 for Printrun-2.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 435f54f13bfc51986445241398cb0f0d5d1376924ca454dd293ebeb1eaa67ba0 |
|
MD5 | 20ae43d8e9043d55899f199ec81eec96 |
|
BLAKE2b-256 | bf991fd20b66e0ac3e26946db420948a4b29474e6992a15141c76120fe166884 |
哈希值 for Printrun-2.1.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 10c3bdb40da6286adcf0dcc578ad47ce2b7663c9783ab1f2510beab70c1aba29 |
|
MD5 | 01c077b52519577a8c3c46879efb50e8 |
|
BLAKE2b-256 | edfc9bf3b498bc4a95dd0c6c463b8194fd9642b0902eab0e6671e524f53d55d3 |
哈希值 for Printrun-2.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7787a292e082ac891154ecf75528dfd60f400fac5011fefd01dbbeca7e39843a |
|
MD5 | 1a9ab7ba387af4895c0c670ca7b73344 |
|
BLAKE2b-256 | fe75928b3d1a9505a625055560dc8b4ea40cb64cb7ed0a3c3be65e25c6efe557 |
哈希值 for Printrun-2.1.0-cp38-cp38-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 34343ffb10f86a45e76032b0f5e6e5047ab26c712f489709b94ee98780faa6c9 |
|
MD5 | 77faf1ee40333539cef584be44dcc449 |
|
BLAKE2b-256 | 2d53b76101438cf413cf946f8f04bed1db8093130384baacb6378ab588e82754 |
哈希值 for Printrun-2.1.0-cp38-cp38-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2a215224dbf960d1c4a6c63efbc9c62c2993984ccb10b1253d8d986b9bc373c9 |
|
MD5 | 779b889c5c6d5c744491bd590b321a59 |
|
BLAKE2b-256 | 61764a6acf24f93065fd35ab285f8481ce962c3693b4ff77ad310b4a8ed005ca |
哈希值 用于 Printrun-2.1.0-cp38-cp38-macosx_10_9_universal2.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 308f009ec36fb4a50482a74ed7a125a731c3990e1d4ba97633bb37c77bfe0875 |
|
MD5 | 163ff6e42b2b5aa50f46e97ae128eb46 |
|
BLAKE2b-256 | a9ee34d2ca795b562d6bfe35ba6e8ffb91b56966f93f33c7bd286545a0ab3bc1 |