Как импортировать * .pyc файл из другой версии python? - PullRequest
2 голосов
/ 24 апреля 2010

Я использовал python 2.5 и импортировал файл с именем «irit.py» из каталога C: \ util \ Python25 \ Lib \ site-packages. Этот файл импортирует файл "_irit.pyc", который находится в той же директории. Он работал хорошо и делал то, что хотел. Затем я попробовал то же самое с версией Python 2.6.4. «irit.py», который находится в C: \ util \ Python26 \ Lib \ site-packages, был импортирован, но «_irit.pyc» (который находится в том же каталоге из 26, как и раньше) не был найден. Я получил сообщение об ошибке:

Файл "C: \ util \ Python26 \ lib \ site-packages \ irit.py", строка 5, в импорт _irit ImportError: Ошибка загрузки DLL: указанный модуль не найден.

Может кто-нибудь помочь мне разобраться в проблеме и как ее исправить ?? Спасибо, Алмог.

Ответы [ 2 ]

5 голосов
/ 24 апреля 2010

«Ошибка загрузки DLL» не может напрямую ссылаться на .pyc, так как это файл байт-кода, а не DLL; DLL будет .pyd в Windows. По-видимому, файл байт-кода _irit.pyc пытается импортировать часть .pyd, а .pyd недоступен в версии, совместимой с 2.6, в соответствующем каталоге. К сожалению, также кажется, что исходный файл _irit.py также отсутствует, поэтому сообщения об ошибках оказываются менее информативными, чем они могли бы быть. Я бы попробовал запустить python -v, который выдает подробные сообщения обо всех действиях по загрузке и выгрузке модуля - возможно, это позволит вам вывести имя отсутствующего .pyd при сравнении его поведения в 2.5 и 2.6.

1 голос
/ 25 апреля 2010

Pyc-файлы не гарантированно совместимы между версиями Python, поэтому даже если вы исправите отсутствующую dll, вы все равно можете столкнуться с проблемами.

...