python - 代码可以在 Anaconda 上运行,但不能通过 cmd 在 Python 上运行
问题描述
我的代码运行超过 7000 列数据集,大约有 25 万条记录
当我使用 Anaconda Spyder 时效果很好
但现在我想将此代码根据任务计划运行
因此我想在 cmd 命令提示符中执行代码为
Python "c:\myfolder\predservice.py"
它没有作为任务计划工作
我通过在 cmd 中在 Python 上运行脚本来开始跟踪问题
我收到了这个错误,我在运行 Spyder 时没有收到
我怎样才能避免这样的错误
我以为是因为记忆。当我选择数据集的一个子集时,它运行良好,但是当我运行整个数据集时,出现此错误
>>> df =pd.concat([df.drop('PreviousDRGs', 1), pd.get_dummies(df['PreviousDRGs'] .str.split(",", expand=True), prefix
= 'PreviousDRGs').max(level=0, axis=1).asty pe(np.int8)], axis=1)
Traceback (most recent call last): File "<stdin>", line 1, in
<module> File
"C:\Users\decisionsupport\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\generic.py",
line 11616, in stat_func return self._agg_by_level(name, axis=axis,
level=level, skipna=skipna)
File
"C:\Users\decisionsupport\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\generic.py",
line 10440, in _agg_by_level grouped = self.groupby(level=level,
axis=axis, sort=False)
File
"C:\Users\decisionsupport\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\generic.py",
line 7894, in groupby **kwargs
File
"C:\Users\decisionsupport\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\groupby\groupby.py",
line 2522, in groupby return klass(obj, by, **kwds)
File
"C:\Users\decisionsupport\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\groupby\groupby.py",
line 363, in __init__ obj._consolidate_inplace()
File
"C:\Users\decisionsupport\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\generic.py",
line 5252, in _consolidate_inplace self._protect_consolidate(f)
File
"C:\Users\decisionsupport\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\generic.py",
line 5241, in _protect_consolidate result = f()
File
"C:\Users\decisionsupport\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\generic.py",
line 5250, in f self._data = self._data.consolidate()
File
"C:\Users\decisionsupport\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\internals\managers.py",
line 932, in consolidate bm._consolidate_inplace()
File
"C:\Users\decisionsupport\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\internals\managers.py",
line 937, in _consolidate_inplace self.blocks =
tuple(_consolidate(self.blocks))
File
"C:\Users\decisionsupport\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\internals\managers.py",
line 1913, in _consolidate list(group_blocks), dtype=dtype,
_can_consolidate=_can_consolidate
File "C:\Users\decisionsupport\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\internals\blocks.py",
line 3323, in _merge_blocks new_values = new_values[argsort]
numpy.core._exceptions.MemoryError: Unable to allocate array with
shape (4524, 1 38299) and data type uint8
>>>
解决方案
看起来 Anaconda 可能正在使用 64 位 python。您的错误回溯显示您的任务计划程序正在使用 32 位 python 运行您的 .py 脚本。任何一个
- 用 64 位版本替换你的 32 位 python
- 或者安装一个单独的 64 位 python 并告诉任务计划程序使用它来运行你的 .py 文件。
推荐阅读
- typescript - 强类型在商店订阅中不起作用
- dart - 如何绘制小图像以通过画布填充大容器
- java - 在 Jenkins 上配置 GitHub
- javascript - 如何从 for 循环中获取每个值
- aspnetboilerplate - 在 Dapper ASP.Net 核心样板中删除不起作用
- qlikview - 如何打开 qlikview 管理控制台?
- node.js - 如何通过@google/maps 获取有效地址?
- docker - 构建 Dockerfile 得到错误,因为 pynacl 的构建轮失败
- database - ORA-28040: 将数据库从 11g 升级到 12c 后
- powerbi - Power BI:如何选择 Power BI 中日期较大的所有列