macOS Jupyter中Anaconda运行setup.py出现内部错误求助
问题根因
- 你在Jupyter Notebook中直接调用
setup.py时,IPython内核默认会向执行脚本传入-f后缀的内核配置参数,而distutils的参数解析逻辑不识别-f参数,触发第一层报错;报错处理过程中IPython的异常追溯模块又遇到空对象问题,导致程序直接终止。 - 重装Anaconda无法解决问题,因为该问题和Anaconda基础环境无关,属于脚本执行方式的问题。
可行解决方法
- 方法1:使用命令行执行setup.py
打开终端进入对应工作目录,直接执行python setup.py [你需要的参数,比如install/develop]即可,绕过Jupyter的参数注入问题。 - 方法2:在Jupyter中执行时清空传入参数
在你调用setup.py的代码块最开头添加以下代码,清空多余的传入参数,替换为你需要的setup.py参数:
之后再运行setup相关的代码即可。import sys # 示例为传入install参数,可根据你的需求替换为其他setup.py支持的参数 sys.argv = sys.argv[:1] + ['install'] - 方法3:使用subprocess调用隔离执行环境
不想修改sys.argv的话,可以用subprocess模块独立调用setup.py:import subprocess import sys # 括号内最后一位参数可替换为你需要的setup.py参数,cwd填写setup.py所在的目录路径 subprocess.run([sys.executable, 'setup.py', 'install'], cwd='/xxx/xxx/工作目录')
内容的提问来源于stack exchange,提问作者ixbxl
相关产品推荐
相关产品推荐

