Python pickle: ImportError: нет модуля с именем __main__
Привет, у меня есть две очень простые программы, которые запускаются на двух компьютерах. Какой мариновать и рассыпать класс.
На одном компьютере (с использованием Linux):
import cPickle # Define class class test(): def __init__(): self.foo = 1 # Initialise and pickle class bar = test() with open("test.pkl", "wb") as file_: cPickle.dump(bar, file_, protocol=0)
На втором компьютере (с использованием Windows):
import cPickle # Define class again class test(): def __init__(): self.foo = 1 # Unpickle file with open("test.pkl", "rb") as file_: bar = cPickle.dump(file_)
Но я получаю сообщение об ошибке:
ImportError: No module named __main__
Одна машина использует окна, другая – Linux, сценарий и рассол переносятся с использованием GIT (системы контроля версий). Я не могу понять, почему это происходит, поскольку класс определяется непосредственно в основном в обоих сценариях.
- Неотслеживаемые каналы на commit с pygit2
- Git-diff для HTML
- pip install Сбой в OpenShift, информация об ошибке – это отказ от прав
- Cron не запускает команду django
- Как сделать git-слияние pygit2
Проблема связана с окончанием строки. Обычно GIT автоматически конвертирует окончания строк из Windows в формат Linux, когда вы проверяете файлы. Однако, используя конфигурацию по умолчанию, он не делает этого для файлов pickle, и поэтому, когда вы читаете его на машине Windows, он не распознает строку заканчивается правильно.
Как только вы конвертируете окончание строки в соответствующий формат для ОС, рассол будет загружаться должным образом.
Я не уверен, почему Python сообщает об ошибке «ImportError: No module с именем __main__
», поскольку это очень запутанно.
- Запросы Python: как получить и отправить изображение без сохранения на диск?
- Python удаляет определенные дубликаты из списка
- Почему мой пост-получатель не может запустить команду virtualenv source?
- Скрипт для установки и компиляции Python, Django, Virtualenv, Mercurial, Git, LessCSS и т. Д. На Dreamhost
- Почему Python вычисляет «hashlib.sha1», отличный от «git hash-object» для файла?
- Git tree-filter запускает скрипт python для коммитов
- Как git pull rebase использовать библиотеку GitPython?
- Миграция virtualenv и Github между компьютерами
- Как использовать mingw32 при установке пакета distutils?
- Heroku Cedar Python: требование в github-клоне выходит из строя с ошибкой 128
- Как распространять файлы в Python sdist, которые не отслеживаются VCS?