when using the data_files option in my setup.py

#!/usr/bin/env python

import ctypes
from OpenGL.platform import win32
from distutils.core import setup
import py2exe
import sys

sys.path.append("dist")

setup(options = {"py2exe": {"compressed": 1,
                          "optimize": 2,
                          "includes": ["ctypes","Tkinter","Numeric"],
                          "excludes": ["OpenGL"]
                            }},
         zipfile = None,
         data_files=['msvcr71.dll', glut32.dll'], 
                 windows=['myprogram.py']
         )

I get an error saying msvcr71.dll is not found. It exists in C:\windows\system32. If I specify its full path then I get a similar message about glut32.dll. That one exists in the python site libs. If I include it I get an executable but it doesn't work. I wonder though, whether py2exe can find those dll's to link to them properly in the first place so come to this question: what path variables apply to py2exe? Both directories in question are in my PATH and PythonPath environment variables.

Douglas

Recommended Answers

All 2 Replies

I can't find the examples right now, but I recall modifying the setup.py to perform a search for some DLLs and using the path I found in the data section.

so instead of the constant string 'msvcr71.dll' you would use a string variable which contains the full path (as built by the search code).

I can't find the examples right now, but I recall modifying the setup.py to perform a search for some DLLs and using the path I found in the data section.

so instead of the constant string 'msvcr71.dll' you would use a string variable which contains the full path (as built by the search code).

Turns out the real problem I was having was that
from ctypes import utils
wasn't in my script. That lets py2exe realize it needs to include that package since deep in pyOpenGL it includes that in a conditional branch.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.