跳转到主要内容

3D打印机宿主软件

项目描述

PRINTRUN

License GitHub - Downloads GitHub contributors PyPI - Version PyPI - Downloads

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 pronsolepronterfaceplater

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 pronsolepronterfaceplater

--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 WindowsPython 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服务器

pronterfacepronsole启动一个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-Code
  • print:打印当前加载的文件
  • sdprint target.g:开始SD打印
  • ls:列出SD卡上的文件
  • eta:显示剩余打印时间
  • gettemp:获取当前打印机温度
  • settemp:设置热端目标温度
  • bedtemp:设置床的目标温度
  • monitor:在打印期间监控打印机进度
  • tool K:切换到工具K
  • move 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版本。
  • 改进测试代码库。当前的代码覆盖率非常低。更多信息请见测试部分

  • 修复现有问题或实现请求的功能。有许多已知问题和大量待实现的功能请求。我们(维护者)没有时间和资源去查看所有这些,所以每个代码贡献都将非常受欢迎。

    • 我们使用GitHub的拉取请求来审查和合并新代码。
    • 标记为Regression的问题将是最紧迫的修复,其次是标记为2.x的问题,最后是标记为3.x的问题。
    • 理想情况下,每个新的贡献应尽可能遵循PEP 8风格指南,并应进行彻底的文档记录,以方便审查和未来对代码的理解。
    • 请注意,可能需要等待下一个主要版本发布后,才将破坏性更改合并。

贡献者

很多人帮助制作了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 (534.6 kB 查看哈希)

上传时间

构建分布

Printrun-2.1.0-cp312-cp312-win_amd64.whl (459.4 kB 查看哈希)

上传时间 CPython 3.12 Windows x86-64

Printrun-2.1.0-cp312-cp312-win32.whl (455.5 kB 查看哈希)

上传时间 CPython 3.12 Windows x86

Printrun-2.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (600.2 kB 查看哈希)

上传于 CPython 3.12 manylinux: glibc 2.17+ ARM64

Printrun-2.1.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (602.3 kB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

Printrun-2.1.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (588.1 kB 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

Printrun-2.1.0-cp312-cp312-macosx_11_0_arm64.whl (459.9 kB 查看哈希值)

上传于 CPython 3.12 macOS 11.0+ ARM64

Printrun-2.1.0-cp312-cp312-macosx_10_9_x86_64.whl (460.2 kB 查看哈希值)

上传于 CPython 3.12 macOS 10.9+ x86-64

Printrun-2.1.0-cp312-cp312-macosx_10_9_universal2.whl (486.4 kB 查看哈希值)

上传于 CPython 3.12 macOS 10.9+ universal2 (ARM64, x86-64)

Printrun-2.1.0-cp311-cp311-win_amd64.whl (459.2 kB 查看哈希值)

上传于 CPython 3.11 Windows x86-64

Printrun-2.1.0-cp311-cp311-win32.whl (455.3 kB 查看哈希值)

上传于 CPython 3.11 Windows x86

Printrun-2.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (594.0 kB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ ARM64

Printrun-2.1.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (595.2 kB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

Printrun-2.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (582.9 kB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

Printrun-2.1.0-cp311-cp311-macosx_11_0_arm64.whl (459.6 kB 查看哈希值)

上传于 CPython 3.11 macOS 11.0+ ARM64

Printrun-2.1.0-cp311-cp311-macosx_10_9_x86_64.whl (459.5 kB 查看哈希值)

上传于 CPython 3.11 macOS 10.9+ x86-64

Printrun-2.1.0-cp311-cp311-macosx_10_9_universal2.whl (485.4 kB 查看哈希值)

上传于 CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

Printrun-2.1.0-cp310-cp310-win_amd64.whl (459.1 kB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

Printrun-2.1.0-cp310-cp310-win32.whl (455.6 kB 查看哈希值)

上传于 CPython 3.10 Windows x86

Printrun-2.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (584.8 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ ARM64

Printrun-2.1.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (586.1 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

Printrun-2.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (576.4 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

Printrun-2.1.0-cp310-cp310-macosx_11_0_arm64.whl (459.7 kB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

Printrun-2.1.0-cp310-cp310-macosx_10_9_x86_64.whl (459.6 kB 查看哈希值)

上传时间 CPython 3.10 macOS 10.9+ x86-64

Printrun-2.1.0-cp310-cp310-macosx_10_9_universal2.whl (485.5 kB 查看哈希值)

上传时间 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

Printrun-2.1.0-cp39-cp39-win_amd64.whl (459.6 kB 查看哈希值)

上传时间 CPython 3.9 Windows x86-64

Printrun-2.1.0-cp39-cp39-win32.whl (456.1 kB 查看哈希值)

上传时间 CPython 3.9 Windows x86

Printrun-2.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (588.8 kB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.17+ ARM64

Printrun-2.1.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (589.3 kB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

Printrun-2.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (579.9 kB 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

Printrun-2.1.0-cp39-cp39-macosx_11_0_arm64.whl (460.5 kB 查看哈希值)

上传时间 CPython 3.9 macOS 11.0+ ARM64

Printrun-2.1.0-cp39-cp39-macosx_10_9_x86_64.whl (460.3 kB 查看哈希值)

上传时间 CPython 3.9 macOS 10.9+ x86-64

Printrun-2.1.0-cp39-cp39-macosx_10_9_universal2.whl (487.1 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

Printrun-2.1.0-cp38-cp38-win_amd64.whl (459.8 kB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

Printrun-2.1.0-cp38-cp38-win32.whl (391.1 kB 查看哈希值)

上传于 CPython 3.8 Windows x86

Printrun-2.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (523.0 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ ARM64

Printrun-2.1.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (523.4 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

Printrun-2.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (514.4 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

Printrun-2.1.0-cp38-cp38-macosx_11_0_arm64.whl (460.7 kB 查看哈希值)

上传于 CPython 3.8 macOS 11.0+ ARM64

Printrun-2.1.0-cp38-cp38-macosx_10_9_x86_64.whl (395.5 kB 查看哈希值)

上传于 CPython 3.8 macOS 10.9+ x86-64

Printrun-2.1.0-cp38-cp38-macosx_10_9_universal2.whl (487.7 kB 查看哈希值)

上传于 CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面