本文采用中国大陆版CC协议发布
作者保留以下权利:
- 署名(Attribution):必须提到原作者。
- 非商业用途(Noncommercial):不得用于盈利性目的。
- 禁止演绎(No Derivative Works):不得修改原作品, 不得再创作。
新浪微博 @软体动物小Ai
15年的时候在自己的博客上面发布了一篇Cura二次开发环境配置的文章,之后一直不断有朋友咨询相关问题,由于工作比较忙没能一一回复。同时我之前承诺的后续文章也没有兑现,在此和大家说声抱歉。
当前版本的Cura较之前已经有了很大的改变,因此我觉得有必要更新一下了,同时由于当时在写作时只是作为自学笔记并不是很了解相关的原理,其中可能有一些错误,也会在本文中进行更正。
一、约定
本文使用的系统为64位的Windows 10操作系统,安装了32位的Python 2.7 ,所有操作均在bash中完成
二、准备工作(配置Python和虚拟环境)
- 安装Git Bash
首先去官网下载对应版本的 git for windows,然后一路默认安装。 - 安装Python
直接去官网下载2.7版本的Python并安装(位数无所谓,我安装的是32位),安装完成后,在bash中运行winpty python
,测试一下是否能够进入python解释器。 - 安装pip
下载pip-get.py,然后python pip-get.py
运行就可以完成安装 - 安装virtualenv
pip install virtualenv
三、下载Cura源码
-
首先你需要在GitHub上面fork一下cura源码
fork -
查看fork后的代码仓库URL
查看url -
克隆代码到本地任意位置
git clone https://github.com/hanxiaomax/Cura.git
四、安装Cura的依赖库
- 首先,创建虚拟环境并切换
- 进入cura目录,运行bash
- 执行
virtualenv env
创建一个名为env的虚拟环境 -
source env/Scripts/activate
切换到虚拟环境中
以下操作均在虚拟环境env中进行
- 安装依赖库
在cura文件夹可以看到一个requirements.txt
文件,可以尝试使用pip install -r requirements.txt
直接安装,但是很可能会失败。
PyOpenGL>=3.0.2
numpy>=1.6.2
pyserial>=2.6
power>=1.2
setuptools>=0.6.34
文件内容如上,我们可以先安装除numpy以外的包
pip install PyOpenGL
pip install pyserial
pip install power
pip install setuptools
然后我们安装numpy。对于Windows用户,最好去这里下载.wh1文件。
如果你是32位Python就下载箭头所指的包,64位就下载下面一个。下载完成后把它拷贝到cura目录下面,然后执行
pip install <filename>
,其中<filename>就是你下载下来文件的名字。
五、安装wxPython
wxPython是cura的GUI框架, 不能直接从pip安装,首先我们去官网下载,注意这里版本一定要下对,32/64位取决于Python位数而不是操作系统的位数。如果下载错误,则运行时会提示:
**DLL load failed: 1% 不是有效的win32 应用程序**
安装完成后,wxPython被安装到了系统的Python库中,我们在虚拟环境里面是无法使用的,所以我们需要到C:\Python27\Lib\site-packages中把 wx-3.0-msw,wx.pth,wxversion.py这三个拷贝到虚拟环境下面的 Lib/site-packages中。
在bash中运行python
或winpty python
来启动解释器,然后尝试import wx
,如果可以导入,说明安装成功。
六、运行Cura
这里我们启动Cura的GUI程序,由于没有包括引擎部分,所以是无法实现切片的,只能够允许你去定制Cura的界面。
之前的文章里面我提到:
0.修改app.py
我们并不希望,每次修改代码后,都要对Cura重新打包然后运行查看效果,而是希望有更加方便的预览办法。其实非常简单,只需要把Cura当做一个模块运行即可。
~\Cura\gui\app.py 中我们需要添加几行代码,使其可以作为模块单独运行
if name == 'main': app=CuraApp("1.txt")#随便指定一个文件即可 app.MainLoop()#开启wx的主循环
1.启动
在cura根目录下 python -m Cura.gui.app
会出现splash画面,如果没有进一步启动程序,说明有一些脚本无法载入,一般是因为导入不了某些库。此时我们需要检查一下是否所有的依赖都已经安装。。正常情况应该是在稍许延时后完成启动。
我发现现在已经无法使用该方法了,其实当时有点舍近求远了。
最简单的启动办法是:
在Cura根目录执行python -m Cura.cura
,随后即可看到欢迎界面,程序成功启动。
WTF!没有正常启动?而且没有报错?请看下面的错误排查环节!
6.错误排查
Cura在启动时已经把所有的输出都做了重定向,所以在控制台里面是无法看到报错信息和print输出的信息的。
- 一种方法是:查找output.txt文件,通常会在根目录下,如果不在就搜索一下系统。
- 另一种方法:修改gui/app.py中代码
class CuraApp(wx.App):
def __init__(self, files):
if platform.system() == "Windows" and not 'PYCHARM_HOSTED' in os.environ:
#super(CuraApp, self).__init__(redirect=True, filename="output.txt")
#修改为:
#super(CuraApp, self).__init__(redirect=True, filename=False)
else:
super(CuraApp, self).__init__(redirect=False)
随后就可以看到相应的错误信息,根据报错内容来进行处理。大家可以在留言里面说一下自己遇到的问题。
结束语
工作实在比较忙,希望大家理解,希望能够有时间写一下后续的内容。至于到底有没有后续呢?那就得看大家打赏的热情啦~(手动斜眼)
欧耶
网友评论