shimrod
December 17, 2013, 8:08am
1
Hello,
Is there an easy way to distribute cegui using pdeploy? My users are windows users, I need to generate some exe files…
Thank you
rdb
December 17, 2013, 11:28pm
2
You’ll need to create your own custom packages for this using the pdef syntax described in the manual.
shimrod
December 18, 2013, 7:54am
3
Read in the manual
I hope information found in the manual will be enough.
Thank for your answser anyway
rdb
December 18, 2013, 10:33am
4
You should look in direct/src/p3d/thirdparty.pdef for an example of how other modules and libraries are packaged.
shimrod
December 19, 2013, 7:59pm
5
I’ve downloaded pycegui, and install it.
It takes place in \Panda3D-1.8.1\python\Lib\site-packages\PyCEGUI.
I create a pcegui.pdef like this :
class cegui(package):
require('panda3d')
module('PyCEGUI')
but I got this error
>>ppackage -i pcegui pcegui.pdef
:AppRunner: Total Panda3D disk space used: 170 MB
:AppRunner: Configured max usage is: 2048 MB
:Packager: Reading pcegui.pdef
Unknown module: PyCEGUI
Generating cegui/cmu_1.8/cegui.cmu_1.8.mf
I don’t how to go forward? Any clue?
Thank you
rdb
December 19, 2013, 9:24pm
6
Ppackage uses a different version of Python than is on your system, so you need to manually add PyCEGUI to sys.path at the top of your .pdef file (after importing sys of course). However, you need to make sure that the version of Python that your CEGUI build is made for is the same - 32-bits Python 2.7. In your case, since you used the 1.8.1 SDK, it’s probably fine.
shimrod
December 19, 2013, 9:44pm
7
Thank you.
I am going step by step, sorry for that, and waste of time.
Apparently, it tries to call dumpbin and mt, not recognize…
And can’t determine assemblies for Pycegui…
C:\pascal\shimstar\cegui>ppackage -i cegui pcegui.pdef
:AppRunner: Total Panda3D disk space used: 170 MB
:AppRunner: Configured max usage is: 2048 MB
:Packager: Reading pcegui.pdef
'dumpbin' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes.
:Packager(warning): Unable to determine dependencies from /c/apps/Panda3D-1.8.1/python/Lib/site-packages/PyCEGUI/PyCEGUI.pyd
'mt' n'est pas reconnu en tant que commande interne ou externe, un programme exécutable ou un fichier de commandes.
:Packager(warning): Unable to determine dependent assemblies from /c/apps/Panda3D-1.8.1/python/Lib/site-packages/PyCEGUI/PyCEGUI.pyd
Generating cegui/cmu_1.8/win32/cegui.cmu_1.8.win32.mf
can you help me again?
Thank you
rdb
December 19, 2013, 10:56pm
8
Yes, you do need dumpbin.exe and mt.exe, which are available for free if you install Microsoft Visual C++ Express. Either 2008 or 2010 will do. Alternatively, you could try the Windows 7.1 SDK, but I’m not 100% confident that it contains it.
shimrod
December 20, 2013, 8:07pm
9
Yeah for information mt.exe is in the sdk, and dumpbin in visual studio.
ok I’ve generated the package.
But, for now, how we do to tell to packp3d there is a local package to use?
shimrod
December 21, 2013, 8:20am
10
I used this syntax to precise where the package is (hosted)
packp3d -o test.p3d -d . -r cegui,1.0,http://shimrod.free.fr/panda3d/package/cegui -r morepy
ps: You can go this website if you want to test…
here the error log
:AppRunner: Total Panda3D disk space used: 170 MB
:AppRunner: Configured max usage is: 2048 MB
:AppRunner: Freshening shimrod.free.fr/panda3d/package/ … import.xml
:downloader: [0351EC68] begin GET [ shimrod.free.fr/panda3d/package/ … import.xml ]
:AppRunner: shimrod.free.fr/panda3d/package/ … import.xml is still no good after downloading.
Traceback (most recent call last):
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\showbase\Messenger.py”, line 424, in __taskChainDispatch
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\showbase\Messenger.py”, line 482, in __dispatch
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\p3d\AppRunner.py”, line 748, in __startIfReady
File “VFSImporter”, line 153, in load_module
File “/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/p3d/packp3d.py”, line 225, in
File “/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/p3d/packp3d.py”, line 208, in makePackedApp
File “/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/p3d/Packager.py”, line 3045, in do_require
File “/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/p3d/Packager.py”, line 3071, in requirePackagesNamed
File “/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/p3d/Packager.py”, line 2787, in findPackage
File “/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/p3d/Packager.py”, line 2894, in __findPackageOnHost
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\directnotify\Notifier.py”, line 132, in error
StandardError: Couldn’t download import file.
:task(error): Exception occurred in PythonTask Messenger-default
Traceback (most recent call last):
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\p3d\AppRunner.py”, line 638, in run
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\task\Task.py”, line 502, in run
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\task\Task.py”, line 460, in step
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\showbase\Messenger.py”, line 424, in __taskChainDispatch
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\showbase\Messenger.py”, line 482, in __dispatch
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\p3d\AppRunner.py”, line 748, in __startIfReady
File “VFSImporter”, line 153, in load_module
File “/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/p3d/packp3d.py”, line 225, in
File “/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/p3d/packp3d.py”, line 208, in makePackedApp
File “/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/p3d/Packager.py”, line 3045, in do_require
File “/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/p3d/Packager.py”, line 3071, in requirePackagesNamed
File “/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/p3d/Packager.py”, line 2787, in findPackage
File “/Users/buildbot/slave/release_rtdist_osx/build/panda3d/built_cmu/direct/p3d/Packager.py”, line 2894, in __findPackageOnHost
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\directnotify\Notifier.py”, line 132, in error
StandardError: Couldn’t download import file.
any clue?
rdb
December 21, 2013, 8:36am
11
It’s a line ending issue. contents.xml claims that your import.xml has a hash of 0716230dc9e616915c036c2d954a78cb, but in reality it has a hash of 70297e7fec80c6b46be4f92c18c61015. When I convert import.xml from UNIX to DOS line endings using unix2dos, it changes back to 0716…
shimrod
December 21, 2013, 9:08am
12
My ftp transfert was by default on ascii. I switch to binary, and it is fine by now.
I will try to pdeploy now, and test it.
Thank you
ps: I don’t know how you determine, it was a hash problem, but great job
shimrod
December 21, 2013, 9:19am
13
Trying to launch p3d, I got this error log now
:AppRunner: Total Panda3D disk space used: 202 MB
:AppRunner: Configured max usage is: 2048 MB
libpath =C:\Users\ogilp\AppData\Local\Panda3D\hosts\shimrod.free.fr_8fcc48ede46d187c\cegui\1.0\PyCEGUI
Traceback (most recent call last):
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\showbase\Messenger.py”, line 424, in __taskChainDispatch
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\showbase\Messenger.py”, line 482, in __dispatch
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\p3d\AppRunner.py”, line 748, in __startIfReady
File “VFSImporter”, line 153, in load_module
File “C:\pascal\shimstar\poc\packagecegui\main.py”, line 16, in
import PyCEGUI
File “VFSImporter”, line 446, in load_module
ImportError
:task(error): Exception occurred in PythonTask Messenger-default
Traceback (most recent call last):
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\p3d\AppRunner.py”, line 638, in run
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\task\Task.py”, line 502, in run
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\task\Task.py”, line 460, in step
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\showbase\Messenger.py”, line 424, in __taskChainDispatch
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\showbase\Messenger.py”, line 482, in __dispatch
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\p3d\AppRunner.py”, line 748, in __startIfReady
File “VFSImporter”, line 153, in load_module
File “C:\pascal\shimstar\poc\packagecegui\main.py”, line 16, in
import PyCEGUI
File “VFSImporter”, line 446, in load_module
ImportError
Failure on startup.
In my host directory, I got the PyCEGUI.pyd right downloaded. I wonder if I have to have the pycegui’s dll too.
Is it a way to package it?
Thank you
shimrod
December 21, 2013, 9:38am
14
I modify my pdef like this
import sys
sys.path.insert(0,'C:\\apps\\Panda3D-1.8.1\\python\\Lib\\site-packages')
packager.setHost('http://shimrod.free.fr/panda3d/package/cegui')
class cegui(package):
config(
version="1.0",
display_name="cegui")
require('panda3d')
module('PyCEGUI')
file("CEGUIBase.dll")
file("CEGUIExpatParser.dll")
file("CEGUIFalagardWRBase.dll")
file("CEGUIOpenGLRenderer.dll")
file("CEGUISILLYImageCodec.dll")
file("boost_python-vc90-mt-1_46_1.dll")
file("SILLY.dll")
To have all dll dependencies.
But I got this error when I execute my p3D:
:PackageInfo: Package cegui uses 21 MB
:AppRunner: Total Panda3D disk space used: 208 MB
:AppRunner: Configured max usage is: 2048 MB
libpath =C:\Users\ogilp\AppData\Local\Panda3D\hosts\shimrod.free.fr_8fcc48ede46d187c\cegui\1.0\PyCEGUI
Traceback (most recent call last):
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\showbase\Messenger.py”, line 424, in __taskChainDispatch
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\showbase\Messenger.py”, line 482, in __dispatch
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\p3d\AppRunner.py”, line 748, in __startIfReady
File “VFSImporter”, line 153, in load_module
File “C:\pascal\shimstar\poc\packagecegui\main.py”, line 17, in
from pdcegui import PandaCEGUI
File “VFSImporter”, line 153, in load_module
File “C:\pascal\shimstar\poc\packagecegui\pdcegui.py”, line 13, in
import PyCEGUIOpenGLRenderer
ImportError: No module named PyCEGUIOpenGLRenderer
:task(error): Exception occurred in PythonTask Messenger-default
Traceback (most recent call last):
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\p3d\AppRunner.py”, line 638, in run
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\task\Task.py”, line 502, in run
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\task\Task.py”, line 460, in step
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\showbase\Messenger.py”, line 424, in __taskChainDispatch
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\showbase\Messenger.py”, line 482, in __dispatch
File “C:\buildslave\release_rtdist_win32\build\panda3d\built_cmu\direct\p3d\AppRunner.py”, line 748, in __startIfReady
File “VFSImporter”, line 153, in load_module
File “C:\pascal\shimstar\poc\packagecegui\main.py”, line 17, in
from pdcegui import PandaCEGUI
File “VFSImporter”, line 153, in load_module
File “C:\pascal\shimstar\poc\packagecegui\pdcegui.py”, line 13, in
import PyCEGUIOpenGLRenderer
ImportError: No module named PyCEGUIOpenGLRenderer
Failure on startup.
And in AppData\Local\Panda3D\hosts\shimrod.free.fr_8fcc48ede46d187c\cegui\1.0\PyCEGUI, I have only PyCegui.pyd, the dll are in previous folder 1.0.
Maybe it is the trick?
What is your mind about this?
Thank you
rdb
December 21, 2013, 10:37am
15
That’s the first thing I checked as I’ve been bitten by this problem many times before.
As for the error: you’re missing the PyCEGUIOpenGLRenderer module. Is there a Python module with that name? If so, you have to name it explicitly in a module() call.
shimrod
December 21, 2013, 10:43am
16
In the pdcegui.py:
import PyCEGUI
import PyCEGUIOpenGLRenderer
There is no python module Pyceguiopenglrenderer.
Only one dll called PyCEGUIOpenGlRenderer.dll. I think it is the PyCEGUI.pyd that called this dll. So I don’t know to declare it into my pdef.
rdb
December 21, 2013, 5:37pm
17
You have this in your .pdef:
file("CEGUIOpenGLRenderer.dll")
That does not include PyCEGUIOpenGLRenderer.dll. If there indeed exists a PyCEGUIOpenGLRenderer.dll, shouldn’t you also include it in the .pdef using a similar call?
shimrod
December 21, 2013, 9:49pm
18
Can you give me back the way to find the directory where files in package are extracted?
ps: I closed the irc channel too soon…
rdb
December 21, 2013, 11:54pm
19
ExecutionEnvironment.getEnvironmentVariable(“SHIMDATAFILES_ROOT”).