簡體   English   中英

代碼可在 Anaconda 上運行,但不能通過 cmd 在 Python 上運行

[英]Code works on Anaconda but not on Python through cmd

我有運行超過 7000 列數據集的代碼,大約有 250k 條記錄

當我使用 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腳本。 要么

  1. 用64位版本替換您的32位python
  2. 或安裝一個單獨的64位python,並告訴Task Scheduler使用它來運行.py文件。

我認為您需要在調用腳本之前在 cmd 中激活您的 conda base

call <path>\anaconda\Scripts\activate base
<path>\anaconda\python.exe <path>\scriptname.py

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM