2012-05-08 4 views
2

Функция ниже основана на примере кода Python в the Python gzip module docs. Он надежно работает на Ubuntu 10.04 с его стандартным Python 2.6.x. Однако в Ubuntu 11.04 код не работает @writelines().Python gzip не работает на Ubuntu 11.04

На одном компьютере 11,04 сообщается сообщение об ошибке 'module' object has no attribute 'BufferedIOBase'. Другая машина 11.04 сообщила о другом сообщении No module named numpy. Тем не менее пакет numpy устанавливается на обеих машинах.

Кто-нибудь знает о каких-либо недостающих зависимостях Python или других проблемах 11.04, которые могли бы вызвать это?

def _compress(inp,out): 
    import gzip 
    f_out = gzip.open(out,'wb') 
    f_in = open(inp,'rb') 
    f_out.writelines(f_in) 
    f_out.close() 
    f_in.close() 
    os.unlink(inp) 
+0

возможно дубликат [Как решить AttributeError при импорте igraph?] (Http://stackoverflow.com/questions/6315440/how-to-solve-attributeerror-when- importing-igraph) – krock

+1

Что делает 'numpy' отношение к' gzip'? Вероятно, вы ищете ошибку в неправильном месте. – vartec

+0

У вас есть файл 'io.py' или' io/__ init __. Py', который может быть импортирован? –

ответ

3

Сообщение об ошибке No module named numpy не имеет никакого отношения к этой проблеме; это вызывает и другая ошибка. Чтобы отследить это, распечатайте значение sys.path, чтобы узнать, какие пути Python будет искать модуль. Numpy может быть установлен, но, возможно, не в том месте, которое включено в sys.path. Это в сторону, вернемся к вашей основной проблеме.

  1. Проверьте версию Python. Я предполагаю, что 11.04 поставляется с 2.7.x.

  2. writelines() - нечетный способ вызова двоичных данных. Хуже того, параметр должен быть последовательностью строк, а не файлом. Попробуйте этот код вместо:

    f_out.write(f_in.read()) 
    
  3. В зависимости от размера файла, это съедает много памяти. Попробуйте петлю вместо:

    while True: 
        data = f_in.read(10240) 
        if not data: break 
        f_out.write(data) 
    
+0

Да, 11.04 работает Python 2.7x. Спасибо за предложение цикла. Эти текстовые файлы довольно огромны. Я попробую вашу альтернативу. Tom – tahoar

+0

Это решило проблему, как и удаление ненужного io.py в sys.path. Выполнение обоих также отлично. Благодарю. – tahoar

Смежные вопросы