Closed Thimxx closed 7 years ago
I also reported the issue in travis: https://github.com/travis-ci/docs-travis-ci-com/issues/1364
For the Linux cases when there is no .whl file, we will be building wxPython from .tar.gz file. In my case using Fedora 26 with python 3.6 I managed to build the .whl file, but I had to install a lot of development packages. In your case, it starts by the missing GTK+ libraries, including the development ones.
Would you mind to share your successful example? I am trying to do it at the moment at looks needing a lot of libraries...
There are currently a number of packages that wxPython is dependent on. You can refer to the vagrant config files here for a list of packages per flavor. https://github.com/wxWidgets/Phoenix/tree/master/vagrant
Just find the flavor most closely related with what travis is running in the VM and have it install those packages as necessary.
My (at this point) obligatory line on the package dependency matter is: Eventually Phoenix will be smart enough to stub away the missing libraries (disabling the functionality!) But right now it requires their presence. Aids and fixes are coming though.
The big ones are:
Some OpenGl packages may give you grief too. Installing the freeglut package should cover that though.
And as always, installing the appropriate image libraries such as libtiff, libjpeg, etc, is suggested, though for just a travis vm probably a little out of scope.
In the (hopefully) not too distant future there will be a step just before wx's configure is run that will detail missing packages, so they become much easier to identify and manage. Time just hasn't permitted me to work on it quite yet.
~~ Mesalu
You can refer to the vagrant config files here for a list of packages per flavor.
In this case, even better would be to look at Phoenix's .travis.yml and copy the appropriate sections. https://github.com/wxWidgets/Phoenix/blob/master/.travis.yml 😄
My (at this point) obligatory line on the package dependency matter is: Eventually Phoenix will be smart enough to stub away the missing libraries (disabling the functionality!)
But only for some of the optional things. For the core features and libraries their dependencies will always be required.
On Ubuntu 17, this worked for me:
sudo apt-get install libwebkitgtk-dev libjpeg-dev libtiff-dev libgtk2.0-dev libsdl1.2-dev freeglut3 freeglut3-dev libnotify-dev libgstreamerd-3-dev
sudo pip install -Uv wxpython
@Thimxx I have placed the files here They are built for GTK3, as you can see in the Demo screenshot:
So... I have been figthing with the topic a couple of days taking some of the ideas here. I looks there is a problem between the timeout travis during installation or that cleaning process might fail. This is the error I am getting now:
Running setup.py install for wxpython: finished with status 'done'
Removing source in /tmp/pip-build-ZTbTUx/wxpython
Successfully installed wxpython-4.0.0b1
Cleaning up...
/home/travis/.travis/job_stages: line 169: 9824 Terminated travis_jigger $! $timeout $cmd
(data here: https://travis-ci.org/Thimxx/Test-travis/builds/263914111)
In parallel I am checking now the whl from @HelioGuilherme66 (thanks for that! Just seen it!)
Arg! @HelioGuilherme66 neither the whl works, it is not recognized on importing:
I see that you installed the python2.7 version on python 3.6. Better check your travis file.
And the Travis Linux image is Ubuntu Trusty. The package is for Fedora 26 (it even does not work on my CentOS 7.5).
This is my .travis.yml file, It looks the python2.7 is called by something internally inside the pip. My first guess is that the wxpython pip is wrongly updated. Any guess how can I check that configuration?
language: python
python:
- "3.6.2"
addons:
apt:
packages:
- libwebkitgtk-dev
- libjpeg-dev
- libtiff-dev
- libgtk2.0-dev
- libsdl1.2-dev
- libgstreamer-plugins-base0.10-dev
- freeglut3
- freeglut3-dev
- libnotify-dev
# command to install dependencies
install:
- sudo apt-get update
- sudo apt-get install libwebkitgtk-dev libjpeg-dev libtiff-dev libgtk2.0-dev libsdl1.2-dev freeglut3 freeglut3-dev libnotify-dev
- echo "SIX_INSTALLATION"
- travis_wait 60 sudo pip install -Uv six
- echo "WXPYTHON_INSTALLATION"
- wget "https://robotframework.transformidea.com/RIDE/packages/Linux/Fedora_26/wxPython-4.0.0b2-cp27-cp27mu-linux_x86_64.whl"
- sudo pip install wxPython-4.0.0b2-cp27-cp27mu-linux_x86_64.whl
#travis_wait 60 sudo pip install -Uv wxpython
- echo "WXPYTHON_INSTALLATION_FINISHED"
- "pip install requests coveralls nose-htmloutput nose coverage"
- echo "INSTALLATION_FINISHED"
- python -V
script: nosetests -v --with-id --with-coverage --with-html --cover-package=./
after_success:
- coveralls
wxPython-4.0.0b2-cp27-cp27mu-linux_x86_64.whl
The "cp27" in the name means it is the wheel for C Python 2.7.
Yep, I provided the wrong example, sorry.
Essentially, the 2.7 version provides an error when importing wx but installation is successful (https://travis-ci.org/Thimxx/Test-travis/builds/264016332), but the version 3.2 provides wheel not supported error (https://travis-ci.org/Thimxx/Test-travis/builds/264011774)
Well, it is not to wonder why this wheel built for Fedora is failing on Ubuntu. It also fails on my project here. You must do the whole building process on a system similar to the one you wish to run. Since you are using Ubuntu trusty (14.0.4), you should get a machine like that and build it there. Or just use the available builds, for example: https://wxpython.org/Phoenix/snapshot-builds/linux/gtk3/ubuntu-14.04/wxPython-4.0.0a3.dev3059+4a5c5d9-cp35-cp35m-linux_x86_64.whl
So... that one really worked. Thanks!
I think what I learnt here will be really useful for somebody else. Is there any manual or README or maybe wiki that I can update with this information to help others in my situation?
BTW, those are prerelease builds. If you want to test with release builds then you will want to fetch them from https://extras.wxpython.org/wxPython4/extras/linux/, you can also use pip to fetch the latest build from there for you.
See also: https://stackoverflow.com/questions/29290011/using-travis-ci-with-wxpython-tests/45665364#45665364 and: https://wxpython.org/pages/downloads/
same issue , but I use conda install wxpython , that's ok. what a amazing day!
If for some reason someone sees this thread versus another source.
wxPython-4.0.0b2-cp27-cp27mu-linux_x86_64.whl
The "cp27" in the name means it is the wheel for C Python 2.7.
This is the solution. For me I was downloading for Ubuntu 20.04 which has cp38, changing my pipenv to 3.8 from my current default 3.9 allowed for a proper installation. As shown using commands below.
pip install -U \ -f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-20.04/ \ wxPython
When trying to install wxpython following instructions in travis, it fails in the installation, essentially the following execution fails:
pip install -U wxpython
Operating system: Virtual machine in travis wxPython version: latest available in pip Stock or custom build: Python version: 3.6.2 Stock or custom build:
Description of the problem:
Essentially when installing wxpython I got the following error
$ pip install -U wxpython Collecting wxpython Downloading wxPython-4.0.0b1.tar.gz (50.6MB) Requirement already up-to-date: six in /home/travis/virtualenv/python3.6.2/lib/python3.6/site-packages (from wxpython) Building wheels for collected packages: wxpython Running setup.py bdist_wheel for wxpython: started Running setup.py bdist_wheel for wxpython: finished with status 'error' Complete output from command /home/travis/virtualenv/python3.6.2/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-build-2evi4tjt/wxpython/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" bdist_wheel -d /tmp/tmp98rhij4_pip-wheel- --python-tag cp36: running bdistwheel running build WARNING: Building this way assumes that all generated files have been generated already. If that is not the case then use build.py directly to generate the source and perform the build stage. You can use --skip-build with the bdist* or install commands to avoid this message and the wxWidgets and Phoenix build steps in the future.
"/home/travis/virtualenv/python3.6.2/bin/python" -u build.py build Will build using: "/home/travis/virtualenv/python3.6.2/bin/python" 3.6.2 (default, Jul 17 2017, 15:25:33) [GCC 4.8.4] Python's architecture is 64bit cfg.VERSION: 4.0.0b1
Running command: build Running command: build_wx wxWidgets build options: ['--wxpython', '--unicode'] Configure options: ['--enable-unicode', '--with-opengl', '--enable-sound', '--enable-graphics_ctx', '--enable-mediactrl', '--enable-display', '--enable-geometry', '--enable-debug_flag', '--enable-optimise', '--disable-debugreport', '--enable-uiactionsim', '--with-sdl'] /tmp/pip-build-2evi4tjt/wxpython/ext/wxWidgets/configure --enable-unicode --with-opengl --enable-sound --enable-graphics_ctx --enable-mediactrl --enable-display --enable-geometry --enable-debug_flag --enable-optimise --disable-debugreport --enable-uiactionsim --with-sdl checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking for --disable-gui... no checking for --enable-monolithic... no checking for --enable-plugins... no checking for --without-subdirs... no checking for --enable-official_build... no checking for --disable-all-features... no checking for --enable-universal... no checking for --enable-nanox... no checking for --enable-gpe... no checking for toolkit... gtk checking for --with-libpng... yes checking for --with-libjpeg... yes checking for --with-libtiff... yes checking for --without-libjbig... no checking for --without-liblzma... no checking for --with-libxpm... yes checking for --with-libiconv... yes checking for --with-libmspack... no checking for --without-gtkprint... no checking for --with-gnomevfs... no checking for --with-libnotify... yes checking for --with-hildon... no checking for --with-opengl... yes checking for --with-dmalloc... no checking for --with-sdl... yes checking for --with-regex... yes checking for --with-zlib... yes checking for --with-expat... yes checking for --with-macosx-sdk... checking for --with-macosx-version-min... checking for --enable-debug... default checking for --disable-debug_flag... no checking for --enable-debug_info... no checking for --enable-debug_gdb... no checking for --enable-debug_cntxt... no checking for --enable-mem_tracing... no checking for --disable-shared... no checking for --enable-stl... no checking for --enable-std_containers... no checking for --enable-std_iostreams... yes checking for --enable-std_string... yes checking for --enable-std_string_conv_in_wxstring... no checking for --disable-unicode... no checking for --enable-mslu... no checking for --enable-utf8... no checking for --enable-utf8only... no checking for --enable-extended_rtti... no checking for --disable-optimise... no checking for --enable-profile... no checking for --enable-no_rtti... no checking for --enable-no_exceptions... no checking for --enable-permissive... no checking for --enable-no_deps... no checking for --disable-vararg_macros... no checking for --enable-universal_binary... no checking for --enable-macosx_arch... no checking for --enable-compat26... no checking for --disable-compat28... no checking for --disable-rpath... no checking for --enable-objc_uniquifying... no checking for --disable-visibility... no checking for --disable-tls... no checking for --enable-intl... yes checking for --enable-xlocale... yes checking for --enable-config... yes checking for --enable-protocols... yes checking for --enable-ftp... yes checking for --enable-http... yes checking for --enable-fileproto... yes checking for --enable-sockets... yes checking for --enable-ipv6... no checking for --enable-ole... yes checking for --enable-dataobj... yes checking for --enable-ipc... yes checking for --enable-baseevtloop... yes checking for --enable-epollloop... yes checking for --enable-selectloop... yes checking for --enable-any... yes checking for --enable-apple_ieee... yes checking for --enable-arcstream... yes checking for --enable-base64... yes checking for --enable-backtrace... yes checking for --enable-catch_segvs... yes checking for --enable-cmdline... yes checking for --enable-datetime... yes checking for --enable-debugreport... no checking for --enable-dialupman... yes checking for --enable-dynlib... yes checking for --enable-dynamicloader... yes checking for --enable-exceptions... yes checking for --enable-ffile... yes checking for --enable-file... yes checking for --enable-filehistory... yes checking for --enable-filesystem... yes checking for --enable-fontenum... yes checking for --enable-fontmap... yes checking for --enable-fs_archive... yes checking for --enable-fs_inet... yes checking for --enable-fs_zip... yes checking for --enable-fsvolume... yes checking for --enable-fswatcher... yes checking for --enable-geometry... yes checking for --enable-log... yes checking for --enable-longlong... yes checking for --enable-mimetype... yes checking for --enable-printfposparam... yes checking for --enable-snglinst... yes checking for --enable-sound... yes checking for --enable-stdpaths... yes checking for --enable-stopwatch... yes checking for --enable-streams... yes checking for --enable-sysoptions... yes checking for --enable-tarstream... yes checking for --enable-textbuf... yes checking for --enable-textfile... yes checking for --enable-timer... yes checking for --enable-variant... yes checking for --enable-zipstream... yes checking for --enable-url... yes checking for --enable-protocol... yes checking for --enable-protocol_http... yes checking for --enable-protocol_ftp... yes checking for --enable-protocol_file... yes checking for --enable-threads... yes checking for --enable-iniconf... no checking for --enable-regkey... yes checking for --enable-docview... yes checking for --enable-help... yes checking for --enable-mshtmlhelp... yes checking for --enable-html... yes checking for --enable-htmlhelp... yes checking for --enable-xrc... yes checking for --enable-aui... yes checking for --enable-propgrid... yes checking for --enable-ribbon... yes checking for --enable-stc... yes checking for --enable-constraints... yes checking for --enable-loggui... yes checking for --enable-logwin... yes checking for --enable-logdialog... yes checking for --enable-mdi... yes checking for --enable-mdidoc... yes checking for --enable-mediactrl... yes checking for --enable-gstreamer8... no checking for --enable-richtext... yes checking for --enable-postscript... yes checking for --enable-printarch... yes checking for --enable-svg... yes checking for --enable-webkit... yes checking for --enable-webview... yes checking for --enable-graphics_ctx... yes checking for --enable-clipboard... yes checking for --enable-dnd... yes checking for --disable-controls... no checking for --enable-markup... yes checking for --enable-accel... yes checking for --enable-animatectrl... yes checking for --enable-bannerwindow... yes checking for --enable-artstd... yes checking for --enable-arttango... auto checking for --enable-bmpbutton... yes checking for --enable-bmpcombobox... yes checking for --enable-button... yes checking for --enable-calendar... yes checking for --enable-caret... yes checking for --enable-checkbox... yes checking for --enable-checklst... yes checking for --enable-choice... yes checking for --enable-choicebook... yes checking for --enable-collpane... yes checking for --enable-colourpicker... yes checking for --enable-combobox... yes checking for --enable-comboctrl... yes checking for --enable-commandlinkbutton... yes checking for --enable-dataviewctrl... yes checking for --enable-datepick... yes checking for --enable-detect_sm... yes checking for --enable-dirpicker... yes checking for --enable-display... yes checking for --enable-editablebox... yes checking for --enable-filectrl... yes checking for --enable-filepicker... yes checking for --enable-fontpicker... yes checking for --enable-gauge... yes checking for --enable-grid... yes checking for --enable-headerctrl... yes checking for --enable-hyperlink... yes checking for --enable-imaglist... yes checking for --enable-infobar... yes checking for --enable-listbook... yes checking for --enable-listbox... yes checking for --enable-listctrl... yes checking for --enable-notebook... yes checking for --enable-notifmsg... yes checking for --enable-odcombobox... yes checking for --enable-popupwin... yes checking for --enable-prefseditor... yes checking for --enable-radiobox... yes checking for --enable-radiobtn... yes checking for --enable-richmsgdlg... yes checking for --enable-richtooltip... yes checking for --enable-rearrangectrl... yes checking for --enable-sash... yes checking for --enable-scrollbar... yes checking for --enable-searchctrl... yes checking for --enable-slider... yes checking for --enable-spinbtn... yes checking for --enable-spinctrl... yes checking for --enable-splitter... yes checking for --enable-statbmp... yes checking for --enable-statbox... yes checking for --enable-statline... yes checking for --enable-stattext... yes checking for --enable-statusbar... yes checking for --enable-taskbaricon... yes checking for --enable-tbarnative... yes checking for --enable-textctrl... yes checking for --enable-datepick... yes checking for --enable-tipwindow... yes checking for --enable-togglebtn... yes checking for --enable-toolbar... yes checking for --enable-toolbook... yes checking for --enable-treebook... yes checking for --enable-treectrl... yes checking for --enable-treelist... yes checking for --enable-commondlg... yes checking for --enable-aboutdlg... yes checking for --enable-choicedlg... yes checking for --enable-coldlg... yes checking for --enable-filedlg... yes checking for --enable-finddlg... yes checking for --enable-fontdlg... yes checking for --enable-dirdlg... yes checking for --enable-msgdlg... yes checking for --enable-numberdlg... yes checking for --enable-splash... yes checking for --enable-textdlg... yes checking for --enable-tipdlg... yes checking for --enable-progressdlg... yes checking for --enable-wizarddlg... yes checking for --enable-menus... yes checking for --enable-miniframe... yes checking for --enable-tooltips... yes checking for --enable-splines... yes checking for --enable-mousewheel... yes checking for --enable-validators... yes checking for --enable-busyinfo... yes checking for --enable-hotkey... auto checking for --enable-joystick... yes checking for --enable-metafile... auto checking for --enable-dragimage... yes checking for --enable-accessibility... no checking for --enable-uiactionsim... yes checking for --enable-dctransform... yes checking for --enable-webviewwebkit... yes checking for --enable-palette... yes checking for --enable-image... yes checking for --enable-gif... yes checking for --enable-pcx... yes checking for --enable-tga... yes checking for --enable-iff... yes checking for --enable-pnm... yes checking for --enable-xpm... yes checking for --enable-ico_cur... yes checking for --enable-dccache... yes checking for --enable-ps-in-msw... yes checking for --enable-ownerdrawn... yes checking for --enable-uxtheme... yes checking for --enable-wxdib... yes checking for --enable-webviewie... yes checking for --enable-autoidman... no checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking whether we are using the Intel C compiler... no checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking whether gcc needs -traditional... no checking for g++... g++ checking whether we are using the GNU C++ compiler... yes checking whether g++ accepts -g... yes checking whether we are using the Intel C++ compiler... no checking whether we are using the Sun C++ compiler... no checking for ar... ar checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for langinfo.h... yes checking for wchar.h... yes checking for sys/select.h... yes checking for cxxabi.h... yes checking for an ANSI C-conforming const... yes checking for inline... inline checking size of short... 2 checking size of void *... 8 checking size of int... 4 checking size of long... 8 checking size of size_t... 8 checking size of long long... 8 checking size of wchar_t... 4 checking for va_copy... yes checking whether the compiler supports variadic macros... yes checking for _FILE_OFFSET_BITS value needed for large files... 64 checking if large file support is available... yes checking for _LARGEFILE_SOURCE value needed for large files... no checking whether byte ordering is bigendian... no checking for iostream... yes checking if C++ compiler supports the explicit keyword... yes checking for std::wstring in... yes
checking for std::istream... yes
checking for std::ostream... yes
checking how to run the C++ preprocessor... g++ -E
checking type_traits usability... no
checking type_traits presence... no
checking for type_traits... no
checking tr1/type_traits usability... yes
checking tr1/type_traits presence... yes
checking for tr1/type_traits... yes
checking for __sync_fetch_and_add and __sync_sub_and_fetch builtins... yes
checking for libraries directories... /usr/lib/x86_64-linux-gnu /usr/lib
checking for cos... no
checking for floor... no
checking if floating point functions link without -lm... no
checking for sin... yes
checking for ceil... yes
checking if floating point functions link with -lm... yes
checking for strtoull... yes
configure: WARNING: Defaulting to the builtin regex library for Unicode build.
checking for zlib.h >= 1.1.4... yes
checking for zlib.h... (cached) yes
checking for deflate in -lz... yes
checking for png.h > 0.90... yes
checking for png.h... (cached) yes
checking for png_sig_cmp in -lpng... yes
checking for jpeglib.h... yes
checking for jpeg_read_header in -ljpeg... yes
checking for tiffio.h... yes
checking for TIFFError in -ltiff... yes
checking for expat.h... yes
checking if expat.h is valid C++ header... yes
checking for XML_ParserCreate in -lexpat... yes
checking for GTK+ version...
checking for pkg-config... /usr/bin/pkg-config
checking for GTK+ - version >= 2.6.0... no
Could not run GTK+ test program, checking why...
The test program failed to compile or link. See the file config.log for the
exact error that occurred. This usually means GTK+ is incorrectly installed.
checking for pkg-config... (cached) /usr/bin/pkg-config
checking for GTK+ - version >= 3.0.0... no
Could not run GTK+ test program, checking why...
The test program failed to compile or link. See the file config.log for the
exact error that occured. This usually means GTK+ is incorrectly installed.
checking for gtk-config... no
checking for GTK - version >= 1.2.7... no
The gtk-config script installed by GTK could not be found
If GTK was installed in PREFIX, make sure PREFIX/bin is in
your path, or set the GTK_CONFIG environment variable to the
full path to gtk-config.
checking for gtk-config... (cached) no
checking for GTK - version >= 1.2.3... no
The gtk-config script installed by GTK could not be found
If GTK was installed in PREFIX, make sure PREFIX/bin is in
your path, or set the GTK_CONFIG environment variable to the
full path to gtk-config.
configure: error:
The development files for GTK+ were not found. For GTK+ 2, please
ensure that pkg-config is in the path and that gtk+-2.0.pc is
installed. For GTK+ 1.2 please check that gtk-config is in the path,
and that the version is 1.2.3 or above. Also check that the
libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
--libs' are in the LD_LIBRARY_PATH or equivalent.
Error running configure ERROR: failed building wxWidgets Traceback (most recent call last): File "build.py", line 1259, in cmd_build_wx wxbuild.main(wxDir(), build_options) File "/tmp/pip-build-2evi4tjt/wxpython/buildtools/build_wxwidgets.py", line 368, in main "Error running configure") File "/tmp/pip-build-2evi4tjt/wxpython/buildtools/build_wxwidgets.py", line 85, in exitIfError raise builder.BuildError(msg) buildtools.builder.BuildError: Error running configure Finished command: build_wx (0m12.721s) Finished command: build (0m12.721s) Command '"/home/travis/virtualenv/python3.6.2/bin/python" -u build.py build' failed with exit code 1.
Failed building wheel for wxpython Running setup.py clean for wxpython Failed to build wxpython Installing collected packages: wxpython Running setup.py install for wxpython: started Running setup.py install for wxpython: finished with status 'error' Complete output from command /home/travis/virtualenv/python3.6.2/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-build-2evi4tjt/wxpython/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-ykt87at0-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/travis/virtualenv/python3.6.2/include/site/python3.6/wxpython: running install running build WARNING: Building this way assumes that all generated files have been generated already. If that is not the case then use build.py directly to generate the source and perform the build stage. You can use --skip-build with the bdist_* or install commands to avoid this message and the wxWidgets and Phoenix build steps in the future.
Command "/home/travis/virtualenv/python3.6.2/bin/python -u -c "import setuptools, tokenize;file='/tmp/pip-build-2evi4tjt/wxpython/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-ykt87at0-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/travis/virtualenv/python3.6.2/include/site/python3.6/wxpython" failed with error code 1 in /tmp/pip-build-2evi4tjt/wxpython/ The command "pip install -U wxpython" failed and exited with 1 during . Your build has been stopped.
Just create a travis.xml file like this:
language: python python:
command to install dependencies
install:
I included this one for consistency of what I did.