Windows10运行Cura源代码,搭建环境教程
参考官方文档
https://github.com/Ultimaker/Cura/wiki/Running-Cura-from-Source-on-Windows#python-3810
注意
这些说明理所当然地认为用户使用的是 Windows 版本 >= 1809(即 OS Build 17763)的 Windows 10 机器。为了检查您的 Windows 版本,您可以单击“开始”并编写winver
并按下Enter
或使用 powershell,您可以输入:
PS > [ System.Environment ]::OSVersion.Version
主要次要构建修订
----- ----- ----- --------
10 0 17763 0
本指南已在 20H2 Windows 版本(即 OS Build 19042)上测试和执行。请注意,本指南不考虑1809 之前的 Windows 10 版本或 Windows 7、8 或 8.1 等 Windows 操作系统。
替代方法
在我们开始本指南之前,我们应该提到“官方”,Cura 是这样构建的:
- 在 cura-build-environment仓库进行了克隆,其所有项目(即所有Cura依赖像Python,QT,PyQt的,SIP等)都可使用一个CMake脚本被搭建。
- 构建依赖项后,会克隆cura-build存储库,以便安装 Cura、CuraEngine、Uranium、libCharon、fdm_materials 和 cura-binary-data。
因此,此时您可以选择是否要遵循“官方”路径来解决每个用户/操作系统安装可能带来的所有问题,或者您可以继续执行以下步骤并手动安装依赖项。如果您选择前一个选项,请参阅相应的存储库以查看安装每个存储库所需的实际步骤。
Microsoft Visual Studio
要在 Windows 上编译库,需要 Microsoft Visual Studio C++。支持 Microsoft Visual Studio 2015 和 2019。
Microsoft Visual Studio 2019
(推荐安装)
- 从此处下载 Microsoft Visual Studio 2019 (Web 安装程序)。免费版是社区版。
- 运行网络安装程序。下载所需的一切需要一些时间。
- 当安装程序加载时,检查
Desktop development with C++
下Windows
。也选择MSVC v140 - VS 2015 C++ build tools (v14.00)
下Installation details
。完整的安装将很大(> 6 GB)并且需要一段时间才能完成。 - 在以下步骤中构建文件(使用 cmake 或 nmake)时,请务必使用 'x64 Native Tools Command Prompt for VS 2019'。这可确保使用 Visual Studio 2019 构建工具。
Microsoft Visual Studio 2015
(用于早期版本,仍然有效)
- 从此处(Web 安装程序)或 此处(ISO 映像)下载 Microsoft Visual Studio 。
- 运行安装程序。为了节省空间,可以只
Visual C++
在编程语言中选择自定义。完整的安装将很大(> 12 GB)并且需要一段时间才能完成。
CMake
- 从此处下载 Windows 版 CMake“win64-x64” 。
- 运行安装程序。
- 选择 PATH 选项时,选择
Add CMake to system PATH for all users
或Add CMake to the system PATH for the current user
。允许cmake
从命令行运行命令。 - 通过打开命令窗口并键入
cmake --version
来验证 CMake 的安装。
MinGW-w64
如果您正在构建 CuraEngine,则需要 MinGW-w64。如果仅编译库,则可以跳过此步骤。
- 从[这里](https://sourceforge.net/projects/mingw-w64/files/Toolchains targetting Win32/Personal Builds/mingw-builds/installer/mingw-w64-install.exe/download)下载 mingw-w64 安装程序(不是 zip)。
- 运行安装程序。架构应该改为,
x86_64
线程架构应该是posix
(pthread)。 - 将 MinGW 添加到包含
bin
目录的 PATH 环境(例如,C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin
)。 - 通过打开终端并输入“mingw32-make”来检查是否可以找到 mingw32-make。它应该提示' No targets specified and no makefile found. Stop. '
Git(可选)
建议使用 Git 来使用命令行克隆其他存储库。Git 不是必需的,因为所有文件都可以下载存储库。
- 从这里下载适用于 Windows 的 Git 。
- 运行安装程序。选择
Git from command line and also from 3rd-party software
(默认)或Use Git and optional Unix tools from the Command Prompt
在该Adjusting your PATH environment
部分中选择。 - 通过打开命令窗口并键入
git --version
来验证 git 的安装。
Python 3.8.10
-
从这里(3.8.10) 下载python 3.8.X。
-
在使用
Install Now
or之前Customize installation
,请检查Add Python 3.8 to PATH
它是否可以在命令行中引用。 -
通过打开命令窗口并键入
python --version
. 还pip3
可以通过键入python -m pip --version
. 如果它们中的任何一个都不起作用,请确保 WindowsPATH
变量包含 Python 的根目录(如%localappdata%/Programs/Python/Python38/
)和Scripts
文件夹(如%localappdata%/Programs/Python/Python38/Scripts
)。 -
从此处下载 Numpy 库,使用
MKL
适用于您的 Python 版本 (3.8) 的版本并使用 64 位安装版本进行 64 位安装。它可以pip3 install [WHL FILE]
在命令行中使用安装。 -
从此处下载 Shapely 库,选择
cp38‑cp38m‑win32.whl
(适用于 32 位安装的版本)和cp38‑cp38m‑win_amd64.whl
(适用于 64 位安装的版本),它可以在命令行中使用pip3 install [WHL FILE]
安装。 -
使用以下命令安装其他所需的库:
python -m pip install scipy cryptography colorlog netifaces zeroconf trimesh sentry_sdk pyserial PyQt5==5.15.2 keyring requests pywin32
注意:
特别需要 PyQt5 版本 5.15.2。
编译库
编译库需要使用随 Microsoft Visual Studio 一起安装的“x64 Native Tools Command Prompt for VS 2019”。这允许使用该nmake
命令。由于编译某些库需要引用其他库,因此这些步骤将使用一个C:/dev
目录。只要在运行命令时进行了更改,就可以使用任何目录。
Protobuf
-
从这里下载 Protobuf 3.15.7 。
-
将其解压缩到,
C:/dev
以便您拥有一个C:/dev/protobuf-3.15.7
目录。 -
导航到
protobuf-3.15.7
目录:cd C:/dev/protobuf-3.15.7
-
创建构建和安装目录。
mkdir install_dir mkdir cmake_build && cd cmake_build
-
构建并安装 Protobuf:
cmake -DCMAKE_INSTALL_PREFIX=../install_dir -DCMAKE_INSTALL_LIBDIR=lib -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Release -G "NMake Makefiles" ../cmake nmake nmake install
SIP
-
从这里下载 SIP 4.19.24 。
-
将其解压缩到
C:/dev
以便创建一个C:/dev/sip-4.19.24
目录。版本的最后一部分应该从名称中删除。 -
导航到
sip-4.19.24
目录:cd C:/dev/sip-4.19.24
-
构建并安装 SIP(再次确保使用 Visual Studio 提供的命令提示符):
python configure.py nmake nmake install
Arcus
-
克隆
libArcus
存储库:git clone -b "build_from_source_windows" https://github.com/Ultimaker/libArcus.git C:\dev\libArcus
-
导航到
libArcus
目录:cd C:\dev\libArcus
-
创建构建目录:
mkdir install_dir mkdir build && cd build
-
为 Protobuf 设置环境变量:
set PROTOBUF_SRC=C:\dev\protobuf-3.15.7 set PROTOBUF_INSTALL=%PROTOBUF_SRC%\install_dir
-
构建和安装
libArcus
(再次确保使用 Visual Studio 提供的命令提示符):cmake -DCMAKE_INSTALL_PREFIX=../install_dir -DPROTOBUF_SRC_ROOT_FOLDER=%PROTOBUF_SRC% -DPROTOBUF_LIBRARY=%PROTOBUF_INSTALL%/lib/libprotobuf.lib -DPROTOBUF_INCLUDE_DIR=%PROTOBUF_INSTALL%/include -DPROTOBUF_PROTOC_EXECUTABLE=%PROTOBUF_INSTALL%/bin/protoc.exe -DBUILD_EXAMPLES=OFF -DBUILD_STATIC=ON -DMSVC_STATIC_RUNTIME=ON -DCMAKE_BUILD_TYPE=Release -G "NMake Makefiles" .. nmake nmake install
Savitar
-
克隆
libSavitar
存储库:git clone https://github.com/Ultimaker/libSavitar.git C:\dev\libSavitar
-
导航到
libSavitar
目录:cd C:\dev\libSavitar
-
创建构建和安装目录:
mkdir install_dir mkdir build && cd build
-
构建和安装
libSavitar
(再次确保使用 Visual Studio 提供的命令提示符):cmake -DCMAKE_INSTALL_PREFIX=../install_dir -DBUILD_STATIC=ON -DCMAKE_BUILD_TYPE=Release -G "NMake Makefiles" .. nmake nmake install
Charon
-
克隆
libCharon
存储库:git clone https://github.com/Ultimaker/libCharon.git C:\dev\libCharon
-
导航到
libCharon
目录:cd C:\dev\libCharon
-
创建构建和安装目录:
mkdir install_dir mkdir build && cd build
-
构建和安装
libCharon
(再次确保使用 Visual Studio 提供的命令提示符):cmake -DCMAKE_INSTALL_PREFIX=../install_dir -DCMAKE_BUILD_TYPE=Release -G "NMake Makefiles" .. nmake nmake install
Pynest2D
-
克隆 Ultimaker
libnest2d
存储库:git clone https://github.com/Ultimaker/libnest2d.git C:\dev\libnest2d
-
导航到
libnest2d
目录:cd C:\dev\libnest2d
-
创建构建和安装目录:
mkdir install_dir mkdir build && cd build
-
(可选)如果您的系统中已经有 boost,请确保在构建 libnest2D 时它不会出现:
set BOOST_ROOT=
-
构建并安装 libnest2d,指示它也下载并构建其依赖项(-DRP_ENABLE_DOWNLOADING=ON):
cmake .. -DLIBNEST2D_HEADER_ONLY=OFF -DRP_ENABLE_DOWNLOADING=ON -DCMAKE_INSTALL_PREFIX=..\install_dir cmake --build . --target install
注意:如果您不希望 libnest2d 自动下载并安装必要的依赖项(boost、NLopt、Clipper),则删除该标志
-DRP_ENABLE_DOWNLOADING=ON
并确保您的系统中安装了这些依赖项 -
克隆
pynest2d
存储库:git clone https://github.com/Ultimaker/pynest2d.git C:\dev\pynest2d
-
导航到
pynest2d
目录:cd C:\dev\pynest2d
-
创建构建和安装目录:
mkdir install_dir mkdir build && cd build
-
设置所需的环境变量:
set CLIPPER_PATH=C:\dev\libnest2d\build\dependencies set NLopt_PATH=C:\dev\libnest2d\build\dependencies set BOOST_ROOT=C:\dev\libnest2d\build\dependencies
注意:如果您没有使用 libnest2d 下载这些依赖项,请在您的系统中设置正确的路径
-
构建和安装
pynest2d
(再次确保使用 Visual Studio 提供的命令提示符):cmake -DCMAKE_INSTALL_PREFIX=../install_dir -DLIBNEST2D_INCLUDE_DIRS=C:\dev\libnest2d\install_dir\include -DCMAKE_BUILD_TYPE=Release -G "NMake Makefiles" .. nmake nmake install
Uranium
Uranium
(UM
)是必需的库,但不需要编译。
-
克隆
Uranium
存储库:git clone https://github.com/Ultimaker/Uranium.git C:\dev\Uranium
-
将
Uranium
目录添加到您的PYTHONPATH
环境变量中。即使PYTHONPATH
没有设置,也可以使用以下命令完成:set PYTHONPATH=%PYTHONPATH%;C:\dev\Uranium
如果您决定添加UM
到主Python的安装,当Cura
库被克隆时,需要将plugins
和resources
目录分别复制到C:\dev\Cura\plugins
和C:\dev\Cura\resources
目录。
CuraEngine
注意:某些库将再次构建。这是有意为之,因为我们需要引擎的 mingw(我们需要 sip 依赖项的 nmake!)。
-
从这里下载 Protobuf 3.15.7 。
-
C:\dev
使用-mingw
后缀将其解压缩,以便创建一个C:/dev/protobuf-3.15.7-mingw
目录。 -
导航到·protobuf-3.15.7-mingw·目录:
cd C:\dev\protobuf-3.15.7-mingw
-
创建构建和安装目录。
mkdir install_dir mkdir cmake_build && cd cmake_build
-
构建并安装 Protobuf:
cmake -DCMAKE_INSTALL_PREFIX=../install_dir -DCMAKE_PREFIX_PATH=../install_dir -DCMAKE_INSTALL_LIBDIR=lib -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_CXX_FLAGS="-std=c++11" -DCMAKE_BUILD_TYPE=Release -G "MinGW Makefiles" ../cmake mingw32-make mingw32-make install
-
使用
-mingw
后缀克隆libArcus存储库:$ git clone https://github.com/Ultimaker/libArcus.git C:\dev\libArcus-mingw
-
导航到
libArcus-mingw
目录:cd C:\dev\libArcus-mingw
-
创建构建目录:
mkdir install_dir mkdir build && cd build
-
为 Protobuf 设置环境变量:
set PROTOBUF_MINGW_SRC=C:/dev/protobuf-3.15.7-mingw set PROTOBUF_MINGW_INSTALL=%PROTOBUF_MINGW_SRC%/install_dir
-
构建和安装
libArcus
:cmake -DCMAKE_INSTALL_PREFIX=../install_dir -DPROTOBUF_SRC_ROOT_FOLDER=%PROTOBUF_MINGW_SRC% -DPROTOBUF_LIBRARY=%PROTOBUF_MINGW_INSTALL%/lib/libprotobuf.a -DPROTOBUF_INCLUDE_DIR=%PROTOBUF_MINGW_INSTALL%/include -DPROTOBUF_PROTOC_EXECUTABLE=%PROTOBUF_MINGW_INSTALL%/bin/protoc -DBUILD_EXAMPLES=OFF -DBUILD_STATIC=ON -DBUILD_PYTHON=OFF -DCMAKE_BUILD_TYPE=Release -G "MinGW Makefiles" .. mingw32-make mingw32-make install
-
克隆
CuraEngine
存储库:git clone https://github.com/Ultimaker/CuraEngine.git C:\dev\CuraEngine
-
导航到
CuraEngine
目录:cd C:\dev\CuraEngine
-
创建构建和安装目录。
mkdir install_dir mkdir cmake_build && cd cmake_build
-
为
Arcus
设置环境变量:set ARCUS_DIR=C:/dev/libArcus-mingw/install_dir/lib/cmake/Arcus
-
构建和安装
CuraEngine
:cmake -DCMAKE_INSTALL_PREFIX=../install_dir -DCMAKE_BUILD_TYPE=Release -DArcus_DIR=%ARCUS_DIR% -DPROTOBUF_SRC_ROOT_FOLDER=%PROTOBUF_MINGW_SRC% -DPROTOBUF_LIBRARY=%PROTOBUF_MINGW_INSTALL%/lib/libprotobuf.a -DProtobuf_INCLUDE_DIR=%PROTOBUF_MINGW_INSTALL%/include -DPROTOBUF_PROTOC_EXECUTABLE=%PROTOBUF_MINGW_INSTALL%/bin/protoc.exe -DPROTOC=%PROTOBUF_MINGW_INSTALL%/bin/protoc.exe -G "MinGW Makefiles" .. mingw32-make mingw32-make install
Cura
-
克隆
Cura
存储库:git clone https://github.com/Ultimaker/Cura.git C:\dev\Cura
-
克隆
fdm_materials
到Cura/resources/materials
目录:git clone https://github.com/Ultimaker/fdm_materials.git C:\dev\Cura\resources\materials
-
导航到
Cura
目录:cd C:\dev\Cura
-
添加
CuraEngine
可执行文件:copy "C:\dev\CuraEngine\install_dir\bin\CuraEngine.exe" CuraEngine.exe
-
运行
Cura
:python cura_app.py