參考官方文檔
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