Python 安装 matlabengin 时遇到报错:setup.py install is deprecated. !! 以及 Cannot update time stamp of directory 'dist\matlabengine.egg-info' 的解决方案
Python 安装 matlabengin 时遇到报错:setup.py install is deprecated. !! 以及 Cannot update time stamp of directory 'dist\matlabengine.egg-info' 的解决方案
大概是去年的时候 MATLAB 出了新皮肤。最近为了用 MATLAB 的新皮肤,从 MATLAB R2022b 切换到了 R2024a,这样一来 matlabengin 就需要重新安装了。原本想在同学面前炫一手 Visual Stdio Code 的技,没想到一连吃了两个报错。这里写个博客,一口气把两个问题全给解决了。
以下是我的环境配置:
- 平台:Windows 10 22H2
- Python 版本:3.9.10
- MATLAB 安装路径:
D:\Program Files\MATLAB\R2024a
首先按照安装 MATLAB engin 的一般步骤,进入到 MATLAB 安装目录下的 extern\engines\python,进入终端执行:
python -u ./setup.py install
发现出现报错(中间省略一长串不必要的信息,展示最关键的部分):
D:\Python\Python39\Lib\site-packages\setuptools\_distutils\cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.
!!
********************************************************************************
Please avoid running ``setup.py`` directly.
Instead, use pypa/build, pypa/installer or other
standards-based tools.
See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
********************************************************************************
...
[05/30/24 23:27:50] ERROR listing git files failed - pretending git.py:24
there aren't any
zip_safe flag not set; analyzing archive contents...
matlab.__pycache__.__init__.cpython-39: module references __file__
matlab.__pycache__.__init__.cpython-39: module references __path__
matlab.engine.__pycache__.__init__.cpython-39: module references __file__
这里一连有好几个工具包都给出了相类似的提示信息,就是希望我不要运行 ./setup.py。具体的解释可以参见给出的博客文章,原文是长篇大论的论述:Why you shouldn't invoke setup.py directly。简言之就是通过 Python 直接调用 setup.py 安装 Python 工具包的形式已经被淘汰了。这里安装工具包最简单的方法是:
pip install .
直接用一个点代指当前目录下的工具包。
之后遇到了这个报错:
Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
Processing d:\program files\matlab\r2024a\extern\engines\python
Installing build dependencies ... done
Getting requirements to build wheel ... error
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> [1 lines of output]
error: Cannot update time stamp of directory 'dist\matlabengine.egg-info'
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
[notice] A new release of pip is available: 23.2.1 -> 24.0
[notice] To update, run: python.exe -m pip install --upgrade pip
哎你就说巧不巧吧,昨天我刚刚入门安装使用 R 语言就遇到了类似的问题,所以果断判断出了问题。究其原因,是因为 D:\Program Files 这个路径虽然不在系统盘(C盘)内,但仍然被 Windows 视作程序安装目录 C:\Program Files\ 的一个延伸,属于系统目录的一部分,因此是需要管理员权限的。而且,程序和程序之间相互的目录访问都需要管理员权限。由于直接启动 pip 没有管理员权限,无法将时间戳写入 D:\Program Files\MATLAB\R2024a\extern\engines\python\dist\matlabengine.egg-info。敬请参照我的博客文章 R 语言入门学习笔记:软件安装踩坑记录——删除所有包以及彻底解决库包被安装到 C 盘用户目录下的问题,以及一些其他需要注意的点。所以解决的方案就是:
- 在 Windows 菜单下重新找到系统终端
- 以管理员身份运行
- 从新
cd到 MATLAB 安装目录下的extern\engines\python文件夹内执行pip install .
好在我安装了 MSYS2 zsh 和 gsudo,所以可以直接 sudo pip install .,问题完美解决。
Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
Processing d:\program files\matlab\r2024a\extern\engines\python
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: matlabengine
Building wheel for matlabengine (pyproject.toml) ... done
...
Successfully built matlabengine
Installing collected packages: matlabengine
Attempting uninstall: matlabengine
Found existing installation: matlabengine 24.1
Uninstalling matlabengine-24.1:
Successfully uninstalled matlabengine-24.1
Successfully installed matlabengine-24.1
当然了,根治这种情况的办法当然是卸载重装。重装 R 尚且还算容易,MATLAB 这个安装体量跟双开门冰箱似的,我只能说大可不必。以后还是当心点吧,对于 Windows 上经常需要在终端下调用的编程语言解释器之类的东西不要装进任何一个盘根目录下的 Program Files 文件夹下面——即使 Windows 鼓励用户这么做,还是应该在此盘根目录下新建一个文件夹。只能说 Windows 的文件系统相对来说比较混乱,Linux 下就完全不会出现这种问题。
Python 安装 matlabengin 时遇到报错:setup.py install is deprecated. !! 以及 Cannot update time stamp of directory 'dist\matlabengine.egg-info' 的解决方案的更多相关文章
- Python安装pip时, 报错:zipimport.ZipImportError: can't decompress data; zlib not available
解决办法: 1.安装依赖zlib.zlib-devel 2.重新编译安装Python 具体步骤: 1 到python安装目录下,运行./configure 2 编辑Modules/Setup文件 vi ...
- 安装vue-cli时-4058报错的解决方法
一.报错信息 安装vue-cli时-4058报错 二.解决办法 1.安装淘宝镜像 npm --registry https://registry.npm.taobao.org info undersc ...
- Python 安装MySQLdb模块遇到报错及解决方案:_mysql.c(42) : fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory
一.问题 系统:win7 64位 在下载MySQL-python-1.2.5.zip,使用python setup.py install 安装时,出现以下报错: _mysql.c(42) : fata ...
- python安装模块的时候报错error: command 'gcc' failed with exit status 1
[情况] 在写Python代码的时候,需要用到psutil模块,需要安装. 但是在安装时,报错:error: command 'gcc' failed with exit status 1 [解决步骤 ...
- 按照教程自动安装RFNoC时.在使用pip安装pybombs时出现报错,解决办法
$ sudo apt-get install git $ sudo apt-get install python-setuptools python-dev python-pip build-esse ...
- 解决小米手机USB安装apk时AS报错:INSTALL_FAILED_USER_RESTRICTED
今天,直接用AS在小米手机上运行安装的时候总是报错:INSTALL_FAILED_USER_RESTRICTED,于是乎,通过以下方式解决: 在开发者选项将USB安装打开,然后,哈,解决了.记录一下.
- pip安装psutil模块时候报错:yum install python-devel mysql-devel zlib-devel openssl-devel
yum install python-devel mysql-devel zlib-devel openssl-devel [root@localhost software]# pip install ...
- Python安装第三方库,报错超时: Read timed out.
1.安装beautifulsoup4 >pip install beautifulsoup4 报错超时: Read timed out. 2.解决办法:pip --default-timeout ...
- 安装nginx环境(含lua)时遇到报错ngx_http_lua_common.h:20:20: error: luajit.h: No such file or directory的解决
下面是安装nginx+lua环境时使用的相关模块及版本,ngx_devel_kit和lua-nginx-module模块用的都是github上最新的模块.并进行了LuaJIT的安装. #Install ...
- pip安装selenium时,报错“You are using pip version 10.0.1, however version 18.0 is available.”的问题
pip安装selenium,pip install selenium 类型这样错误 1 原因可能不是以管理员身份运行cmd安装selenium 2 解决方式 也是要管理员身份运行 重点在最后一句 ...
随机推荐
- [Go] golang 替换组件包 更新 go.mod, go.sum 的方式
当我们不再使用某个包,或者包名变更时,是如何保证 go.mod 更新的. 只要代码中没有地方 import 使用到某个包了,我们运行: $ go mod tidy module 管理器会帮我们自动清理 ...
- [Cryptocurrency] okex 获取行情的三种方式, ticker、depth、kline
获取行情可以使用 ticker.depth.kline 这三种方式. ticker 得到的是最新一条的成交价行情数据记录. depth 得到的是指定条数的包含 成交价格 和 成交数量 的记录. kli ...
- UWP 从文件 StorageFile 转 SoftwareBitmap 图片方法
本文告诉大家如何在 UWP 从 文件 StorageFile 转 SoftwareBitmap 图片的方法 使用以下三步即可从文件 StorageFile 转 SoftwareBitmap 图片 第一 ...
- 小程序中使用 lottie 动画 | 踩坑经验分享
最近被拉去支援紧急需求(赶在五一节假日前上线的,双休需要加班),参与到项目中才知道,开发的项目是微信小程序技术栈的.由于是临时支援,笔者也很久没开发过微信小程序了,所以挑选了相对独立,业务属性相对轻薄 ...
- 阿里DataX极简教程
目录 简介 工作流程 核心架构 核心模块介绍 DataX调度流程 支持的数据 实践 下载 环境 执行流程 引用 简介 DataX是一个数据同步工具,可以将数据从一个地方读取出来并以极快的速度写入另外一 ...
- CSS动画-数字轮盘滚动效果实现(组件封装,快速使用)
效果图: 原理分析:这玩意就和垂直方向的轮播图差不多,只是把轮播的图换成数字 主要实现:父组件:父组件接收一个curNum属性,这个属性代表当前需要显示的数字.它将这个数字传递给子组件AnimateN ...
- 【漏洞复现】金蝶OA-EAS系统 uploadLogo.action 任意文件上传漏洞(0day)
阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站.服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作.利用此文所提供的 ...
- HTML——table表格标签
一.table表格的完整写法 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- C# Afroge摄像头翻转90
1.dll和命名空间就不在此列举了,如下只是将转换方法介绍: 第一个函数: public void Rotate90() { // 计算角度,类变量 //dAngle = dAngle + 90; / ...
- 记一次 .NET某工控WPF程序被人恶搞的 卡死分析
一:背景 1. 讲故事 这一期程序故障除了做原理分析,还顺带吐槽一下,熟悉我的朋友都知道我分析dump是免费的,但免费不代表可以滥用我的宝贵时间,我不知道有些人故意恶搞卡死是想干嘛,不得而知,希望后面 ...