Ошибка LoadLibrary (pythondll) при использовании учебников по py2exe - PullRequest
4 голосов
/ 25 июля 2011

Я пытаюсь использовать py2exe и сейчас у меня просто проблемы с созданием примеров и учебных пособий, которые поставляются с py2exe. Я запускаю setup.py, и это нормально, но когда я пытаюсь запустить созданный exe-файл, я получаю ошибку «LoadLibrary (pythondll) fail»). Я не переместил исполняемый файл из каталога dist, и я вижу, что python27.dll находится в этом каталоге dist. Кто-нибудь знает, что может происходить?

В случае, если это имеет значение, я запускаю 32-битный python 2.7 с соответствующим 32-битным python 2.7 py2exe на windows 7.

Спасибо

Файл test.py просто содержит печать "тест"

Вот мой setup.py, основанный на том, что написал Кирк:

from distutils.core import setup
import py2exe
import sys
from glob import glob

project_folder = r'C:\\Python27\\Lib\site-packages\\py2exe\\samples\\test\\'
data_files = [
        ("dlls", glob(project_folder + r'dlls\\*.dll'))                  
        ,("pyds", glob(project_folder + r'pyds\\*.pyd'))  
         ]
options = { }

setup(
name='test'
,options = options
,zipfile = None
,data_files=data_files
,console=['test.py']
)

Ответы [ 2 ]

1 голос
/ 06 июня 2018

Я знаю, что это довольно старый вопрос, но у меня была похожая проблема. Я удалил python и py2exe 64 бит, чтобы заменить его 32 битной версией. После этого я всегда получал эту ошибку. Позже я удалил каталоги dist и build из моего проекта, и последующая сборка сработала.

1 голос
/ 27 июля 2011

Вы хотите специально включить файл python27.dll.Если вы включаете несколько вещей, используйте glob и массив файлов данных, как показано ниже, чтобы получить лучшие результаты с py2exe.Для этого примера создайте папку Dll и поместите туда python27.dll.

from distutils.core import setup
import py2exe
import sys
from glob import glob
data_files = [
        ("Stuff", glob(r'C:\projectfolder\Stuff\*.*')) 
        ,("dlls", glob(r'C:\projectfolder\dlls\*.dll'))                  
        ,("pyds", glob(r'C:\projectfolder\pyds\*.pyd'))  
         ]
options = { }

setup(
name='ProjectName'
,options = options
,zipfile = None
,data_files=data_files
,console=['projectname.py']
)
...