ozen / PyOptiX

Python wrapper for NVIDIA OptiX Ray Tracing Engine
MIT License
64 stars 7 forks source link

How to install PyOptix from the source? #3

Closed kaanaksit closed 6 years ago

kaanaksit commented 6 years ago

Here is a copy of my journal on how I approach trying your library on my system, at the end you will also find the problem that I am facing currently with the installation:

I started usin NVIDIA OptiX 5.1 version and Ubuntu 16.04:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.4 LTS
Release:    16.04
Codename:   xenial

Download OptiX from this website:

https://developer.nvidia.com/optix

This will install a file called NVIDIA-OptiX-SDK-5.1.0-linux64_24109458.sh or similar depending on the version that you are downloading. Extract the content using:

$ cd Downloads
$ chmod +x NVIDIA-OptiX-SDK-5.1.0-linux64_24109458.sh
$ ./NVIDIA-OptiX-SDK-5.1.0-linux64_24109458.sh
$ cd ~
$ sudo cp -R NVIDIA-OptiX-SDK-5.1.0-linux64 /usr/local/

Make sure that you have Optix in your LD_LIBRARY_PATH:

$ echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/" >> ~/.bashrc

Make sure you have everything you need for PyOptix:

$ sudo apt-get install -y build-essential python-dev python-setuptools python3-dev python3-setuptools libboost-python-dev

Make sure that you have nvcc:

$ nvcc --help

And install PyOptix using pip3:

pip3 install pyoptix

This is what I got at the end:

:PyOptiX$ python3 setup.py install
/sbin/ldconfig.real: Can't stat /usr/local/cuda-8.0/targets/x86_64-linux/lib: No such file or directory
/sbin/ldconfig.real: Can't stat /lib/i686-linux-gnu: No such file or directory
/sbin/ldconfig.real: Can't stat /usr/lib/i686-linux-gnu: No such file or directory
/sbin/ldconfig.real: Path `/usr/local/lib' given more than once
/sbin/ldconfig.real: Path `/usr/lib/nvidia-390' given more than once
/sbin/ldconfig.real: Path `/usr/lib32/nvidia-390' given more than once
/sbin/ldconfig.real: Path `/lib/x86_64-linux-gnu' given more than once
/sbin/ldconfig.real: Path `/usr/lib/x86_64-linux-gnu' given more than once
/sbin/ldconfig.real: Cannot stat /lib/i386-linux-gnu/libjawt.so: No such file or directory
/sbin/ldconfig.real: /lib/i386-linux-gnu/ld-2.23.so is the dynamic linker, ignoring

/sbin/ldconfig.real: /lib/x86_64-linux-gnu/ld-2.23.so is the dynamic linker, ignoring

/sbin/ldconfig.real: Cannot stat /usr/lib32/nvidia-390/libOpenGL.so: No such file or directory
/sbin/ldconfig.real: /lib32/ld-2.23.so is the dynamic linker, ignoring

/sbin/ldconfig.real: Cannot stat /usr/lib/libassimp.so: No such file or directory
/usr/local/lib/liboptix.so
/usr/lib/x86_64-linux-gnu/libfakeroot/liboptix.so
/lib/i386-linux-gnu/liboptix.so
/usr/lib/i386-linux-gnu/liboptix.so
/lib/x86_64-linux-gnu/liboptix.so
/usr/lib/x86_64-linux-gnu/liboptix.so
/usr/lib/nvidia-390/liboptix.so
/usr/lib32/nvidia-390/liboptix.so
/lib32/liboptix.so
/usr/lib32/liboptix.so
/usr/local/cuda-8.0/lib64/liboptix.so
/lib/liboptix.so
/usr/lib/liboptix.so
/usr/lib/i386-linux-gnu/sse2/liboptix.so
/usr/lib/nvidia-390/tls/liboptix.so
/usr/lib32/nvidia-390/tls/liboptix.so
liboptix.so
/usr/local/cuda/lib64/liboptix.so
/usr/local/cuda/lib64/liboptix.so
/usr/local/lib/python3.5/dist-packages/openvr-1.0.801-py3.5.egg/openvr/liboptix.so
/home/kaan/.steam/steam/steamapps/common/SteamVR/bin/linux64/liboptix.so
/home/kaan/.steam/steam/steamapps/common/SteamVR/tools/bin/linux64/liboptix.so
/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/liboptix.so
/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/liboptix.so
Traceback (most recent call last):
  File "setup.py", line 193, in <module>
    main()
  File "setup.py", line 156, in main
    sources, include_dirs, library_dirs, libraries = extension_prebuild()
  File "setup.py", line 117, in extension_prebuild
    raise OSError('OptiX Library not found. Add its path to ldconfig or LD_LIBRARY_PATH.')
OSError: OptiX Library not found. Add its path to ldconfig or LD_LIBRARY_PATH.
ozen commented 6 years ago

Hi Kaan,

Library path should be /usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/lib64 (you are missing lib64 at the end). This is where library files are located (specifically liboptix.so library file is what we need).

kaanaksit commented 6 years ago

Hi Ozen,

Thank you very much for your quick response. Here is what happens when I correct the path:

PyOptiX$ echo $LD_LIBRARY_PATH
:/usr/local/cuda/lib64:/usr/local/cuda/lib64:/usr/local/lib/python3.5/dist-packages/openvr-1.0.801-py3.5.egg/openvr/:/home/kaan/.steam/steam/steamapps/common/SteamVR/bin/linux64:/home/kaan/.steam/steam/steamapps/common/SteamVR/tools/bin/linux64:/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64:/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/:/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/lib64
PyOptiX$ ls /usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/lib64
ffmpeg_video_decoder.so  libcudnn.so              liboptix_denoiser.so.5.1.0  liboptix.so.5.1.0   nvcuvid_video_decoder.so
libavcodec.so.56         libcudnn.so.7            liboptix_prime.so           liboptixu.so        nv_freeimage.so
libavfilter.so.5         libcudnn.so.7.1.1        liboptix_prime.so.1         liboptixu.so.1      screen_video.so
libavformat.so.56        libdice.so               liboptix_prime.so.5.1.0     liboptixu.so.5.1.0
libavutil.so.54          liboptix_denoiser.so     liboptix.so                 libswresample.so.1
libcudart.so.9.0         liboptix_denoiser.so.51  liboptix.so.51              libswscale.so.3
PyOptiX$ sudo python3 setup.py install
/sbin/ldconfig.real: Can't stat /usr/local/cuda-8.0/targets/x86_64-linux/lib: No such file or directory
/sbin/ldconfig.real: Can't stat /lib/i686-linux-gnu: No such file or directory
/sbin/ldconfig.real: Can't stat /usr/lib/i686-linux-gnu: No such file or directory
/sbin/ldconfig.real: Path `/usr/local/lib' given more than once
/sbin/ldconfig.real: Path `/usr/lib/nvidia-390' given more than once
/sbin/ldconfig.real: Path `/usr/lib32/nvidia-390' given more than once
/sbin/ldconfig.real: Path `/lib/x86_64-linux-gnu' given more than once
/sbin/ldconfig.real: Path `/usr/lib/x86_64-linux-gnu' given more than once
/sbin/ldconfig.real: Cannot stat /lib/i386-linux-gnu/libjawt.so: No such file or directory
/sbin/ldconfig.real: /lib/i386-linux-gnu/ld-2.23.so is the dynamic linker, ignoring

/sbin/ldconfig.real: /lib/x86_64-linux-gnu/ld-2.23.so is the dynamic linker, ignoring

/sbin/ldconfig.real: Cannot stat /usr/lib32/nvidia-390/libOpenGL.so: No such file or directory
/sbin/ldconfig.real: /lib32/ld-2.23.so is the dynamic linker, ignoring

/sbin/ldconfig.real: Cannot stat /usr/lib/libassimp.so: No such file or directory
/usr/local/lib/liboptix.so
/usr/lib/x86_64-linux-gnu/libfakeroot/liboptix.so
/lib/i386-linux-gnu/liboptix.so
/usr/lib/i386-linux-gnu/liboptix.so
/lib/x86_64-linux-gnu/liboptix.so
/usr/lib/x86_64-linux-gnu/liboptix.so
/usr/lib/nvidia-390/liboptix.so
/usr/lib32/nvidia-390/liboptix.so
/lib32/liboptix.so
/usr/lib32/liboptix.so
/usr/local/cuda-8.0/lib64/liboptix.so
/lib/liboptix.so
/usr/lib/liboptix.so
/usr/lib/i386-linux-gnu/sse2/liboptix.so
/usr/lib/nvidia-390/tls/liboptix.so
/usr/lib32/nvidia-390/tls/liboptix.so
Traceback (most recent call last):
  File "setup.py", line 193, in <module>
    main()
  File "setup.py", line 156, in main
    sources, include_dirs, library_dirs, libraries = extension_prebuild()
  File "setup.py", line 117, in extension_prebuild
    raise OSError('OptiX Library not found. Add its path to ldconfig or LD_LIBRARY_PATH.')
OSError: OptiX Library not found. Add its path to ldconfig or LD_LIBRARY_PATH.
ozen commented 6 years ago

Hi Kaan,

sudo sanitizes the environment before invoking the command. So, LD_LIBRARY_PATH is empty when setup script is run.

There are various ways to preserve environment variables while using sudo. You can look it up. I think adding -E option should work.

kaanaksit commented 6 years ago

Hi Ozen,

Thank you very much for your quick response. Is my assumption correct here? Since I have the LD_LIBRARY_PATH in an updated way at my .bashrc, when I start a new shell my LD_LIBRARY_PATH set to correct values as shown below:

:PyOptiX$ sudo echo $LD_LIBRARY_PATH
:/usr/local/cuda/lib64:/usr/local/cuda/lib64:/usr/local/lib/python3.5/dist-packages/openvr-1.0.801-py3.5.egg/openvr/:/home/kaan/.steam/steam/steamapps/common/SteamVR/bin/linux64:/home/kaan/.steam/steam/steamapps/common/SteamVR/tools/bin/linux64:/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64:/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/:/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/lib64
:PyOptiX$ echo $LD_LIBRARY_PATH
:/usr/local/cuda/lib64:/usr/local/cuda/lib64:/usr/local/lib/python3.5/dist-packages/openvr-1.0.801-py3.5.egg/openvr/:/home/kaan/.steam/steam/steamapps/common/SteamVR/bin/linux64:/home/kaan/.steam/steam/steamapps/common/SteamVR/tools/bin/linux64:/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64:/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/:/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/lib64
kaanaksit commented 6 years ago

Ok, now I get to be able to compile it successfully. In my case trick was to add this alias at the end of .bashrc:

alias sudo='sudo PATH="$PATH" HOME="$HOME" LD_LIBRARY_PATH="$LD_LIBRARY_PATH"'

and run the setup one more time:

:PyOptiX$ sudo python3 setup.py install
[sudo] password for kaksit: 
/sbin/ldconfig.real: Can't stat /usr/local/cuda-8.0/targets/x86_64-linux/lib: No such file or directory
/sbin/ldconfig.real: Can't stat /lib/i686-linux-gnu: No such file or directory
/sbin/ldconfig.real: Can't stat /usr/lib/i686-linux-gnu: No such file or directory
/sbin/ldconfig.real: Path `/usr/local/lib' given more than once
/sbin/ldconfig.real: Path `/usr/lib/nvidia-390' given more than once
/sbin/ldconfig.real: Path `/usr/lib32/nvidia-390' given more than once
/sbin/ldconfig.real: Path `/lib/x86_64-linux-gnu' given more than once
/sbin/ldconfig.real: Path `/usr/lib/x86_64-linux-gnu' given more than once
/sbin/ldconfig.real: Cannot stat /lib/i386-linux-gnu/libjawt.so: No such file or directory
/sbin/ldconfig.real: /lib/i386-linux-gnu/ld-2.23.so is the dynamic linker, ignoring

/sbin/ldconfig.real: /lib/x86_64-linux-gnu/ld-2.23.so is the dynamic linker, ignoring

/sbin/ldconfig.real: Cannot stat /usr/lib32/nvidia-390/libOpenGL.so: No such file or directory
/sbin/ldconfig.real: /lib32/ld-2.23.so is the dynamic linker, ignoring

/sbin/ldconfig.real: Cannot stat /usr/lib/libassimp.so: No such file or directory
/usr/local/lib/liboptix.so
/usr/lib/x86_64-linux-gnu/libfakeroot/liboptix.so
/lib/i386-linux-gnu/liboptix.so
/usr/lib/i386-linux-gnu/liboptix.so
/lib/x86_64-linux-gnu/liboptix.so
/usr/lib/x86_64-linux-gnu/liboptix.so
/usr/lib/nvidia-390/liboptix.so
/usr/lib32/nvidia-390/liboptix.so
/lib32/liboptix.so
/usr/lib32/liboptix.so
/usr/local/cuda-8.0/lib64/liboptix.so
/lib/liboptix.so
/usr/lib/liboptix.so
/usr/lib/i386-linux-gnu/sse2/liboptix.so
/usr/lib/nvidia-390/tls/liboptix.so
/usr/lib32/nvidia-390/tls/liboptix.so
liboptix.so
/usr/local/cuda/lib64/liboptix.so
/usr/local/cuda/lib64/liboptix.so
/usr/local/lib/python3.5/dist-packages/openvr-1.0.801-py3.5.egg/openvr/liboptix.so
/home/kaan/.steam/steam/steamapps/common/SteamVR/bin/linux64/liboptix.so
/home/kaan/.steam/steam/steamapps/common/SteamVR/tools/bin/linux64/liboptix.so
/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/liboptix.so
/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/liboptix.so
/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/lib64/liboptix.so
/usr/local/lib/libboost_python3.so
/usr/local/lib/libboost_python-py35.so
/usr/lib/x86_64-linux-gnu/libfakeroot/libboost_python3.so
/usr/lib/x86_64-linux-gnu/libfakeroot/libboost_python-py35.so
/lib/i386-linux-gnu/libboost_python3.so
/lib/i386-linux-gnu/libboost_python-py35.so
/usr/lib/i386-linux-gnu/libboost_python3.so
/usr/lib/i386-linux-gnu/libboost_python-py35.so
/lib/x86_64-linux-gnu/libboost_python3.so
/lib/x86_64-linux-gnu/libboost_python-py35.so
/usr/lib/x86_64-linux-gnu/libboost_python3.so
/usr/lib/x86_64-linux-gnu/libboost_python-py35.so
running install
running bdist_egg
running egg_info
creating pyoptix.egg-info
writing requirements to pyoptix.egg-info/requires.txt
writing dependency_links to pyoptix.egg-info/dependency_links.txt
writing top-level names to pyoptix.egg-info/top_level.txt
writing pyoptix.egg-info/PKG-INFO
writing manifest file 'pyoptix.egg-info/SOURCES.txt'
reading manifest file 'pyoptix.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'pyoptix.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
creating build
creating build/lib.linux-x86_64-3.5
creating build/lib.linux-x86_64-3.5/pyoptix
copying pyoptix/variable.py -> build/lib.linux-x86_64-3.5/pyoptix
copying pyoptix/buffer.py -> build/lib.linux-x86_64-3.5/pyoptix
copying pyoptix/compiler.py -> build/lib.linux-x86_64-3.5/pyoptix
copying pyoptix/utils.py -> build/lib.linux-x86_64-3.5/pyoptix
copying pyoptix/program.py -> build/lib.linux-x86_64-3.5/pyoptix
copying pyoptix/material.py -> build/lib.linux-x86_64-3.5/pyoptix
copying pyoptix/texture_sampler.py -> build/lib.linux-x86_64-3.5/pyoptix
copying pyoptix/geometry.py -> build/lib.linux-x86_64-3.5/pyoptix
copying pyoptix/geometry_group.py -> build/lib.linux-x86_64-3.5/pyoptix
copying pyoptix/transform.py -> build/lib.linux-x86_64-3.5/pyoptix
copying pyoptix/__init__.py -> build/lib.linux-x86_64-3.5/pyoptix
copying pyoptix/enums.py -> build/lib.linux-x86_64-3.5/pyoptix
copying pyoptix/group.py -> build/lib.linux-x86_64-3.5/pyoptix
copying pyoptix/selector.py -> build/lib.linux-x86_64-3.5/pyoptix
copying pyoptix/context.py -> build/lib.linux-x86_64-3.5/pyoptix
copying pyoptix/acceleration.py -> build/lib.linux-x86_64-3.5/pyoptix
copying pyoptix/geometry_instance.py -> build/lib.linux-x86_64-3.5/pyoptix
copying pyoptix/entry_point.py -> build/lib.linux-x86_64-3.5/pyoptix
creating build/lib.linux-x86_64-3.5/pyoptix/mixins
copying pyoptix/mixins/destroyable.py -> build/lib.linux-x86_64-3.5/pyoptix/mixins
copying pyoptix/mixins/hascontext.py -> build/lib.linux-x86_64-3.5/pyoptix/mixins
copying pyoptix/mixins/parent.py -> build/lib.linux-x86_64-3.5/pyoptix/mixins
copying pyoptix/mixins/scoped.py -> build/lib.linux-x86_64-3.5/pyoptix/mixins
copying pyoptix/mixins/__init__.py -> build/lib.linux-x86_64-3.5/pyoptix/mixins
copying pyoptix/mixins/graphnode.py -> build/lib.linux-x86_64-3.5/pyoptix/mixins
copying pyoptix/mixins/bindless.py -> build/lib.linux-x86_64-3.5/pyoptix/mixins
running build_ext
building 'pyoptix._driver' extension
creating build/temp.linux-x86_64-3.5
creating build/temp.linux-x86_64-3.5/driver
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Idriver -I/usr/include -I/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/include -I/usr/include/python3.5m -c driver/transform.cpp -o build/temp.linux-x86_64-3.5/driver/transform.o -std=c++11
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Idriver -I/usr/include -I/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/include -I/usr/include/python3.5m -c driver/geometry_group.cpp -o build/temp.linux-x86_64-3.5/driver/geometry_group.o -std=c++11
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Idriver -I/usr/include -I/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/include -I/usr/include/python3.5m -c driver/acceleration.cpp -o build/temp.linux-x86_64-3.5/driver/acceleration.o -std=c++11
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Idriver -I/usr/include -I/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/include -I/usr/include/python3.5m -c driver/destroyable.cpp -o build/temp.linux-x86_64-3.5/driver/destroyable.o -std=c++11
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Idriver -I/usr/include -I/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/include -I/usr/include/python3.5m -c driver/geometry.cpp -o build/temp.linux-x86_64-3.5/driver/geometry.o -std=c++11
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Idriver -I/usr/include -I/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/include -I/usr/include/python3.5m -c driver/selector.cpp -o build/temp.linux-x86_64-3.5/driver/selector.o -std=c++11
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Idriver -I/usr/include -I/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/include -I/usr/include/python3.5m -c driver/texture_sampler.cpp -o build/temp.linux-x86_64-3.5/driver/texture_sampler.o -std=c++11
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Idriver -I/usr/include -I/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/include -I/usr/include/python3.5m -c driver/main.cpp -o build/temp.linux-x86_64-3.5/driver/main.o -std=c++11
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Idriver -I/usr/include -I/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/include -I/usr/include/python3.5m -c driver/scoped.cpp -o build/temp.linux-x86_64-3.5/driver/scoped.o -std=c++11
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Idriver -I/usr/include -I/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/include -I/usr/include/python3.5m -c driver/buffer.cpp -o build/temp.linux-x86_64-3.5/driver/buffer.o -std=c++11
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Idriver -I/usr/include -I/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/include -I/usr/include/python3.5m -c driver/geometry_instance.cpp -o build/temp.linux-x86_64-3.5/driver/geometry_instance.o -std=c++11
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Idriver -I/usr/include -I/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/include -I/usr/include/python3.5m -c driver/context.cpp -o build/temp.linux-x86_64-3.5/driver/context.o -std=c++11
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Idriver -I/usr/include -I/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/include -I/usr/include/python3.5m -c driver/group.cpp -o build/temp.linux-x86_64-3.5/driver/group.o -std=c++11
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Idriver -I/usr/include -I/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/include -I/usr/include/python3.5m -c driver/variable.cpp -o build/temp.linux-x86_64-3.5/driver/variable.o -std=c++11
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Idriver -I/usr/include -I/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/include -I/usr/include/python3.5m -c driver/program.cpp -o build/temp.linux-x86_64-3.5/driver/program.o -std=c++11
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -Idriver -I/usr/include -I/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/include -I/usr/include/python3.5m -c driver/material.cpp -o build/temp.linux-x86_64-3.5/driver/material.o -std=c++11
cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.5/driver/transform.o build/temp.linux-x86_64-3.5/driver/geometry_group.o build/temp.linux-x86_64-3.5/driver/acceleration.o build/temp.linux-x86_64-3.5/driver/destroyable.o build/temp.linux-x86_64-3.5/driver/geometry.o build/temp.linux-x86_64-3.5/driver/selector.o build/temp.linux-x86_64-3.5/driver/texture_sampler.o build/temp.linux-x86_64-3.5/driver/main.o build/temp.linux-x86_64-3.5/driver/scoped.o build/temp.linux-x86_64-3.5/driver/buffer.o build/temp.linux-x86_64-3.5/driver/geometry_instance.o build/temp.linux-x86_64-3.5/driver/context.o build/temp.linux-x86_64-3.5/driver/group.o build/temp.linux-x86_64-3.5/driver/variable.o build/temp.linux-x86_64-3.5/driver/program.o build/temp.linux-x86_64-3.5/driver/material.o -L/usr/bin -L/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/lib64 -L/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/bin -Wl,--enable-new-dtags,-R/usr/bin -Wl,--enable-new-dtags,-R/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/lib64 -Wl,--enable-new-dtags,-R/usr/local/NVIDIA-OptiX-SDK-5.1.0-linux64/bin -loptix -loptixu -lcudart -lboost_python-py35 -o build/lib.linux-x86_64-3.5/pyoptix/_driver.cpython-35m-x86_64-linux-gnu.so
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/egg
creating build/bdist.linux-x86_64/egg/pyoptix
copying build/lib.linux-x86_64-3.5/pyoptix/variable.py -> build/bdist.linux-x86_64/egg/pyoptix
copying build/lib.linux-x86_64-3.5/pyoptix/buffer.py -> build/bdist.linux-x86_64/egg/pyoptix
copying build/lib.linux-x86_64-3.5/pyoptix/compiler.py -> build/bdist.linux-x86_64/egg/pyoptix
copying build/lib.linux-x86_64-3.5/pyoptix/utils.py -> build/bdist.linux-x86_64/egg/pyoptix
copying build/lib.linux-x86_64-3.5/pyoptix/program.py -> build/bdist.linux-x86_64/egg/pyoptix
copying build/lib.linux-x86_64-3.5/pyoptix/material.py -> build/bdist.linux-x86_64/egg/pyoptix
copying build/lib.linux-x86_64-3.5/pyoptix/texture_sampler.py -> build/bdist.linux-x86_64/egg/pyoptix
copying build/lib.linux-x86_64-3.5/pyoptix/geometry.py -> build/bdist.linux-x86_64/egg/pyoptix
copying build/lib.linux-x86_64-3.5/pyoptix/geometry_group.py -> build/bdist.linux-x86_64/egg/pyoptix
copying build/lib.linux-x86_64-3.5/pyoptix/_driver.cpython-35m-x86_64-linux-gnu.so -> build/bdist.linux-x86_64/egg/pyoptix
copying build/lib.linux-x86_64-3.5/pyoptix/transform.py -> build/bdist.linux-x86_64/egg/pyoptix
copying build/lib.linux-x86_64-3.5/pyoptix/__init__.py -> build/bdist.linux-x86_64/egg/pyoptix
copying build/lib.linux-x86_64-3.5/pyoptix/enums.py -> build/bdist.linux-x86_64/egg/pyoptix
copying build/lib.linux-x86_64-3.5/pyoptix/group.py -> build/bdist.linux-x86_64/egg/pyoptix
copying build/lib.linux-x86_64-3.5/pyoptix/selector.py -> build/bdist.linux-x86_64/egg/pyoptix
copying build/lib.linux-x86_64-3.5/pyoptix/context.py -> build/bdist.linux-x86_64/egg/pyoptix
copying build/lib.linux-x86_64-3.5/pyoptix/acceleration.py -> build/bdist.linux-x86_64/egg/pyoptix
creating build/bdist.linux-x86_64/egg/pyoptix/mixins
copying build/lib.linux-x86_64-3.5/pyoptix/mixins/destroyable.py -> build/bdist.linux-x86_64/egg/pyoptix/mixins
copying build/lib.linux-x86_64-3.5/pyoptix/mixins/hascontext.py -> build/bdist.linux-x86_64/egg/pyoptix/mixins
copying build/lib.linux-x86_64-3.5/pyoptix/mixins/parent.py -> build/bdist.linux-x86_64/egg/pyoptix/mixins
copying build/lib.linux-x86_64-3.5/pyoptix/mixins/scoped.py -> build/bdist.linux-x86_64/egg/pyoptix/mixins
copying build/lib.linux-x86_64-3.5/pyoptix/mixins/__init__.py -> build/bdist.linux-x86_64/egg/pyoptix/mixins
copying build/lib.linux-x86_64-3.5/pyoptix/mixins/graphnode.py -> build/bdist.linux-x86_64/egg/pyoptix/mixins
copying build/lib.linux-x86_64-3.5/pyoptix/mixins/bindless.py -> build/bdist.linux-x86_64/egg/pyoptix/mixins
copying build/lib.linux-x86_64-3.5/pyoptix/geometry_instance.py -> build/bdist.linux-x86_64/egg/pyoptix
copying build/lib.linux-x86_64-3.5/pyoptix/entry_point.py -> build/bdist.linux-x86_64/egg/pyoptix
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/variable.py to variable.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/buffer.py to buffer.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/compiler.py to compiler.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/utils.py to utils.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/program.py to program.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/material.py to material.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/texture_sampler.py to texture_sampler.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/geometry.py to geometry.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/geometry_group.py to geometry_group.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/transform.py to transform.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/__init__.py to __init__.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/enums.py to enums.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/group.py to group.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/selector.py to selector.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/context.py to context.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/acceleration.py to acceleration.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/mixins/destroyable.py to destroyable.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/mixins/hascontext.py to hascontext.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/mixins/parent.py to parent.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/mixins/scoped.py to scoped.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/mixins/__init__.py to __init__.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/mixins/graphnode.py to graphnode.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/mixins/bindless.py to bindless.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/geometry_instance.py to geometry_instance.cpython-35.pyc
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/entry_point.py to entry_point.cpython-35.pyc
creating stub loader for pyoptix/_driver.cpython-35m-x86_64-linux-gnu.so
byte-compiling build/bdist.linux-x86_64/egg/pyoptix/_driver.py to _driver.cpython-35.pyc
creating build/bdist.linux-x86_64/egg/EGG-INFO
copying pyoptix.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copying pyoptix.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying pyoptix.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying pyoptix.egg-info/requires.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying pyoptix.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
writing build/bdist.linux-x86_64/egg/EGG-INFO/native_libs.txt
zip_safe flag not set; analyzing archive contents...
pyoptix.__pycache__._driver.cpython-35: module references __file__
creating dist
creating 'dist/pyoptix-0.10.1-py3.5-linux-x86_64.egg' and adding 'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Processing pyoptix-0.10.1-py3.5-linux-x86_64.egg
creating /usr/local/lib/python3.5/dist-packages/pyoptix-0.10.1-py3.5-linux-x86_64.egg
Extracting pyoptix-0.10.1-py3.5-linux-x86_64.egg to /usr/local/lib/python3.5/dist-packages
Adding pyoptix 0.10.1 to easy-install.pth file

Installed /usr/local/lib/python3.5/dist-packages/pyoptix-0.10.1-py3.5-linux-x86_64.egg
Processing dependencies for pyoptix==0.10.1
Searching for numpy==1.14.4
Best match: numpy 1.14.4
Adding numpy 1.14.4 to easy-install.pth file

Using /usr/local/lib/python3.5/dist-packages
Searching for six==1.11.0
Best match: six 1.11.0
Adding six 1.11.0 to easy-install.pth file

Using /usr/local/lib/python3.5/dist-packages
Finished processing dependencies for pyoptix==0.10.1
kaanaksit commented 6 years ago

What is the proper way to run examples?

kaanaksit commented 6 years ago

Ok, I had to do a small manipulation to get the example running. I simply navigate to ~/PyOptiX/examples/hello and edited hello.py file. Replace this line:

sys.path.append(dirname(dirname(dirname(__file__))))

with these lines:

dir = '../../'
sys.path.append(dir)

and what I get was a green screen when I call:

:hello$ python3 hello.py
kaanaksit commented 6 years ago

This resolves it all. Ozen thank you very much for all your help. I may be shooting new questions to you in the near future as I am evaluating your library for my next project.

Çok teşekkür ediyorum.