Using a package like PyInstaller
James Stroud
jstroud at ucla.edu
Sun May 28 17:38:43 EDT 2006
LittlePython wrote:
> "Im 99.999% confident that this will not happen from the .exe file
> generated by pyinstaller (unless you specify--see link above)."
>
> Well I guess that's about as close as any one can get in this business. I
> have been trying to introduce py into our environment, and have opened a few
> eyes, however I have been given one restriction. I can not install anything,
> leave behind anything or alter anything on a systems ...... period,
You can always hard-code external resources. For example, first write a
script that makes a module out of one or several jpegs (assuming jpeg
extension is consitently 'jpg':
import binascii
def append_to_jpeg_module(modulename, jpegs):
myjpegs = open('%s.py' % modulename, 'wa')
for jpegname in jpegs:
afile = open('%s.jpg' % jpegname, 'rb')
ajpeg = afile.read()
afile.close()
jpegascii = binascii.b2a_base64(ajpeg)
print jpegascii
myjpegs.write('%s = """%s"""\n\n' % (jpegname, jpegascii))
myjpegs.close()
append_to_jpeg_module('myjpegs', ['logo_sm'])
#heres how you use it
append_to_jpeg_module('myjpegs', ['coolpik1', 'coolpik2', 'anotherpik'])
Now, in your file that needs the jpegs, you can pretend these strings
are files with the cStringIO module, e.g. (pretending 'modulename' above
is 'myjpegs'):
import binascii
import myjpegs
import cStringIO
def get_jpeg_as_opened_file(jpegname, module):
jpegascii = module.__dict__[jpegname]
jpegbin = binascii.a2b_base64(jpegascii)
return cStringIO.StringIO(jpegbin)
# getting that pik
get_jpeg_as_opened_file('coolpik1', myjpegs)
And your company can go on making widgets feeling secure in the fact
that you have not required any extra entries in their file allocation
tables.
James
--
James Stroud
UCLA-DOE Institute for Genomics and Proteomics
Box 951570
Los Angeles, CA 90095
http://www.jamesstroud.com/
More information about the Python-list
mailing list