MemoryError แปลก ๆ ใน Python [ปิด]

ฉันขอโทษที่ไม่สามารถระบุปัญหาได้อีกต่อไป แต่นั่นเป็นเพราะฉันไม่เข้าใจว่าเกิดอะไรขึ้นที่นี่ ข้อผิดพลาดเกิดจากบรรทัด 75 แต่เขามีค่าทั้งหมดของตัวแปรที่ฉันเรียก เห็นได้ชัดว่าฉันขาดอะไรบางอย่างที่นี่ ฉันหวังว่าจะมีคนบอกฉันว่าอะไร

สิ่งที่ฉันพยายามทำคือการเพิ่มสตริงให้กับตัวแปรสำหรับทุกส่วนของรายการ

<type 'exceptions.MemoryError'> Python 2.6.4: /opt/users/ipg/s/p/ipg.*********/python/python
Sat May 10 19:42:39 2014
A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

       73                                 """ % (description[field_count].value)
       74             for item in upload_field:
       75                 article_content += '<img src="http://www.*****.com/images/%s/%s">' % (link_title, item.filename)
       76             field_count = field_count + 1 
       77     elif isinstance(description, basestring):
___

    article_content undefined, link_title = 'sssfzxs', item = FieldStorage('upload_image1', '857143_7542303279...\x94\x01\xa3\x89\x82\xcc0\xc9n\xea/\x87\xff\xd9'), item.filename = '857143_754230327924155_1256712041_o.jpg'
    <type 'exceptions.MemoryError'>: 
          args = () 
          message = ''

person Solver    schedule 11.05.2014    source แหล่งที่มา
comment
การสร้างสตริงด้วยตัวดำเนินการ += ทำให้หน่วยความจำไม่มีประสิทธิภาพอย่างมาก สันนิษฐานว่าคุณกำลังสร้างสตริงขนาดใหญ่จนหน่วยความจำที่มีอยู่ไม่เพียงพอ มีข้อมูลไม่เพียงพอที่จะพูดเพิ่มเติมที่นี่   -  person Wooble    schedule 11.05.2014
comment
@Wooble โดยปกติจะเพิ่มสิ่งนี้เพียง 3 ครั้งในสตริงว่างดังนั้นโดยปกติแล้วหน่วยความจำไม่ควรหมดในเร็ว ๆ นี้   -  person Solver    schedule 11.05.2014


คำตอบ (1)


MemoryError กำลังเพิ่มขึ้นในสถานการณ์หน่วยความจำไม่เพียงพอ ตามเอกสาร .

มีโอกาสที่โค้ดของคุณจะวนซ้ำที่นั่นอย่างไม่มีกำหนดหรือไม่?

หรือคุณอาจใช้หน่วยความจำถึงขีดจำกัดใน Python เวอร์ชัน 32 บิตเพียงเพราะการเชื่อมข้อมูลมากเกินไป ซึ่งเป็นสถานการณ์ที่คล้ายกันตามที่อธิบายไว้ ที่นี่ ในกรณีนั้น คุณอาจสามารถปรับการต่อข้อมูลให้เหมาะสมหรือใช้ Python เวอร์ชัน 64 บิตเพื่อให้คุณดำเนินการได้

person famousgarkin    schedule 11.05.2014
comment
ฉันไม่คิดว่าฉันจะถึงขีดจำกัดหน่วยความจำ ปริมาณข้อมูลที่กำลังถ่ายโอนต่ำมาก - person Solver; 11.05.2014
comment
ความทรงจำเต็มไปด้วยบางสิ่งในกระบวนการนั้น คุณอาจใส่ตัวนับพื้นฐานและการบันทึกหรือลองโปรไฟล์การใช้หน่วยความจำด้วย Heapy เพื่อ ค้นหาผู้กระทำผิด - person famousgarkin; 11.05.2014
comment
การวนซ้ำของฉันคือการวนซ้ำไปเรื่อย ๆ ฉันต้องใช้เล่ห์เหลี่ยมมากจึงจะสังเกตเห็นว่าทำไม - person Solver; 12.05.2014