[SOLVED] ppackage: cant import numpy

SOLUTION: Basically they don’t have numpy built for windows on panda3d-1.9.2 yet, which is what I was using. So, by going back to panda3d-1.8.1, require(‘numpy’) now works.

OGINAL POST:

I have numpy installed via the python.exe and corresponding pip that came with panda3d. Anyhow, I am working on a software package using python and panda3d 1.9.2 on a windows8.1 machine. I’m trying to produce a binary from the source using

ppackage

and a .pdef file, but it is having trouble importing numpy. In my pdef file I have tried including

required("numpy")

in my code. I have also tried adding the numpy source code to my sys.path and including commands

module("numpy", required=True)
module("numpy.version", required=True)

but I still get this error when I include numpy in sys.path:

:AppRunner: Total Panda3D disk space used: 444 MB
:AppRunner: Configured max usage is: 2048 MB
:Packager: Reading pdef/whole.pdef
Traceback (most recent call last):
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\showbase\Messenger.py", line 354, in __taskChainDispatch
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\showbase\Messenger.py", line 412, in __dispatch
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\p3d\AppRunner.py", line 718, in __startIfReady
  File "VFSImporter", line 148, in load_module
  File "direct\p3d\ppackage.py", line 254, in <module>
  File "direct\p3d\Packager.py", line 2783, in readPackageDef
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\stdpy\file.py", line 395, in execfile
  File "<string>", line 31, in <module>
  File "VFSImporter", line 148, in load_module
  File "..\numpy\core\__init__.py", line 4, in <module>
    from numpy.version import version as __version__
ImportError: No module named numpy.version
:task(error): Exception occurred in PythonTask Messenger-default
Traceback (most recent call last):
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\p3d\AppRunner.py", line 596, in run
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\task\Task.py", line 510, in run
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\task\Task.py", line 467, in step
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\showbase\Messenger.py", line 354, in __taskChainDispatch
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\showbase\Messenger.py", line 412, in __dispatch
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\p3d\AppRunner.py", line 718, in __startIfReady
  File "VFSImporter", line 148, in load_module
  File "direct\p3d\ppackage.py", line 254, in <module>
  File "direct\p3d\Packager.py", line 2783, in readPackageDef
  File "C:\buildslave\rtdist-windows-i386\build\built\direct\stdpy\file.py", line 395, in execfile
  File "<string>", line 31, in <module>
  File "VFSImporter", line 148, in load_module
  File "..\numpy\core\__init__.py", line 4, in <module>
    from numpy.version import version as __version__
ImportError: No module named numpy.version
Failure on startup.
['build.py', 'release', 'whole']
Running release with: whole
Running makeP3ds with args:
ppackage -i ../Release pdef\whole.pdef

and this error when I just use require(“numpy”) and no module(“numpy”) commands:

:AppRunner: Total Panda3D disk space used: 444 MB
:AppRunner: Configured max usage is: 2048 MB
:Packager: Reading pdef/whole.pdef
:Packager(warning): Unknown package numpy, version "None"
:Packager(warning): Cannot build package CAD due to missing dependencies: numpy
:AppRunner: Normal exit with status 0.
['build.py', 'release', 'whole']
Running release with: whole
Running makeP3ds with args:
ppackage -i ../Release pdef\whole.pdef

:confused: :blush: :angry: :neutral_face:

So I have managed to fix this issue by copying C:\Panda3D-1.9.2\python\lib\site-packages\numpy into the root of my source directory and including it with module commands in a recursive directory walk. I then got an error about missing wxversion and wxPython, even though I had require(‘wx’), so I copied both

C:\Pand3D-1.9.2\python\lib\site-packages\wxversion.py

and

C:\Panda3D-1.9.2\python\lib\site-packages\wx-2.8-msw-unicode\wxPython

into my source directory also, and used module in the recursive walk. Ok, so I can now build a .p3d files using ppackage.

However, I am having another issue now. So, in my source directory root I have a folder named core, which has an init.py that defines a function called setup which is used in the application startup. In my generated .p3d file, core/init.pyo is in there, and so is api/launch.pyo which has the line

import core

and then tries to run

core.setup

which results in

AttributeError: 'module' object has no attribute 'setup'

EDIT:

I tried using

require('numpy', host=r'C:\Panda3D-1.9.2\python\Lib\site-packages\numpy')

but that didn’t work either

EDIT 2:

Oh ok, you all don’t have the windows versions of the numpy package up yet: runtime.panda3d.org/numpy/