Windows下python虚拟环境中编译安装NovalIDE

本文为本人编译打包 NovalIDE 过程的记录,以防忘记

1. 源码编译步骤

1.1 克隆 NovalIDE 项目

# dev 分支下的文件
git clone https://gitee.com/wekay/NovalIDE.git

1.2 安装 pipenv 虚拟环境管理

pip install pipenv

1.3 新建文件夹,在文件夹内进入命令行安装虚拟环境

# 本文安装虚拟环境的 python 版本为3.8
pipenv install --python 3.8

1.4 虚拟环境安装相应开发依赖

pipenv install pywin32 --dev
pipenv install pyinstaller --dev
pipenv install psutil --dev
pipenv install watchdog --dev
pipenv install chardet --dev
pipenv install pyperclip --dev
pipenv install wmi --dev
pipenv install requests --dev
pipenv install pillow --dev
pipenv install six --dev

1.5 进入虚拟环境

从该步骤进入虚拟环境开始,后面步骤均在虚拟环境中完成

pipenv shell

1.6 进入到 NovalIDE 文件夹,运行 NovalIDE.py

cd NovalIDE
 
python NovalIDE.py

1.7 打包成 exe 文件

pyinstaller pyinstaller.novalide.python.spec

2. 编译过程中遇到的问题

  • AttributeError: module 'time' has no attribute 'clock'

    由于我使用的是Python3.8版本的,NovalIDE源码中有使用time.clock(),Python3.8 不再支持 time.clock(),可将 time.clock() 替换成 time.perf_counter()

    noval/util/utils.py, line 294, line 296

    time.clock() -> time.perf_counter()

  • PermissionError: [Errno 13] Permission denied

    我打包时出现了这个问题是因为我后台运行了360程序,退出再重新运行一遍就可以打包成功了

  • ModuleNotFoundError: No module named 'distutils.version'

    运行打包好的exe文件,出现该错误,是因为使用了 from distutils.version import ...,所以没有将 distutils.version 依赖打包

    在spec中的 hiddenimports 添加 distutils.version ,重新打包问题解决

a = Analysis(['NovalIDE.py'],
      pathex=['./'],
      binaries=[],
      datas=datas,
      hiddenimports=['noval.util.downutils','noval.python.pyeditor','noval.syntax.pat','site','noval.running','noval.shell','noval.roughparse','distutils.version'],
      hookspath=[],
      runtime_hooks=[],
      excludes=['noval.util.command'],
      win_no_prefer_redirects=False,
      win_private_assemblies=False,
      cipher=block_cipher,
      noarchive=False)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容

友情链接更多精彩内容