[SOLVED] "wxPython/Phoenix does not appear to be installed on the system"
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
python
Python 3.12.2 (main, Feb 7 2024, 00:00:00) [GCC 13.2.1 20231205 (Red Hat 13.2.1-6)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import wx
>>> print(wx.wxWidgets_version.split(' ')[1])
3.2.2.1
I reinstalled all of it, no affect. I'm even running AlienBOB's wxPython package.
The REAL question is, why isn't python seeing the wxPython? How does it detect these things?
When you say "reinstalled all of it", do you mean A) "rebuilt and reinstalled the packages" or B) "downloaded and reinstalled the packages"?
If you did B), it won't work because AlienBOB's wxPython package was built with Python 3.9 (just look inside the package file, there will be many files installed in python 3.9 directories)
As suggested by USUARIONUEVO, you have to rebuild the packages on your Slackware machine with Python 3.11 and then install those packages.
Mixing installation of python modules by system commands or SlackBuild versus python's pip can lead to confusion.
When using pip as a normal user, modules will be built/installed within the user's space and only available to the user. (e.g. ~/.local/lib/python3.9/site-packages)
Using pip as root will install things in places where all users can access them. (e.g. /usr/lib64/python3.9/site-packages
...but python modules get installed in directories that are specific to the version of python (2.7, 3.9, 3.11 etc) that pip is part of. (Slackware has pip, pip2, and pip3 in /usr/bin, to give some control over whether you are installing for python2 or python3.) As a result, installing modules for python 2.7 won't help python 3.x,and things installed for python 3.9 are ignored by python 3.11.
Trying to figure out where python has actually found a module has always been confusing to me. It has a defined search order, but there does not seem to be an easy method in code to determine the point at which the search succeeded. (Well, at least, easy for me.)
Trying to figure out where python has actually found a module has always been confusing to me. It has a defined search order, but there does not seem to be an easy method in code to determine the point at which the search succeeded. (Well, at least, easy for me.)
One method I use:
Code:
# python3 -c "import setuptools as i; print(i.__file__)"
/usr/lib/python3.11/site-packages/setuptools/__init__.py
## for wxPython4 and showing version
python3 -c "import wx as i; print(i.__file__,i.__version__)"
To make wxpython work in Slackware current, I built the following packages from source using AlienBOB slackbuild scripts (adapted to match newer versions and source file tar format in some cases instead of tar.gz).
Note: I patched the above source file the quick and dirty way (I'm not so good at patching file). I'm sure someone can show the proper way to apply this patch in the wxpython Slackbuild
Last edited by gegechris99; 04-18-2024 at 04:06 PM.
Reason: corrected typo in package name : python-pathlib2
Everything builds fine here, this is the sbopkg log. kicad seems to run fine too.
Code:
SUMMARY LOG
Using the UNSUPPORTED SBo git repository for -current
Queue Process: Download, build, and install
libgit2:
MD5SUM check for libgit2-1.0.0.tar.gz ... OK
Building package libgit2-1.0.0-x86_64-1_SBo.tgz ... OK
Installing package libgit2-1.0.0-x86_64-1_SBo.tgz ... OK
wxWidgets:
MD5SUM check for wxWidgets-3.2.4.tar.gz ... OK
Building package wxWidgets-3.2.4-x86_64-1_SBo.tgz ... OK
Installing package wxWidgets-3.2.4-x86_64-1_SBo.tgz ... OK
python3-attrdict:
MD5SUM check for attrdict-2.0.1.tar.gz ... OK
Building package python3-attrdict-2.0.1-x86_64-1_SBo.tgz ... OK
Installing package python3-attrdict-2.0.1-x86_64-1_SBo.tgz ... OK
python3-pathlib2:
MD5SUM check for pathlib2-2.3.6.tar.gz ... OK
Building package python3-pathlib2-2.3.6-x86_64-1_SBo.tgz ... OK
Installing package python3-pathlib2-2.3.6-x86_64-1_SBo.tgz ... OK
unifdef:
MD5SUM check for unifdef-2.12.tar.xz ... OK
Building package unifdef-2.12-x86_64-1_SBo.tgz ... OK
Installing package unifdef-2.12-x86_64-1_SBo.tgz ... OK
xdg-dbus-proxy:
MD5SUM check for xdg-dbus-proxy-0.1.4.tar.xz ... OK
Building package xdg-dbus-proxy-0.1.4-x86_64-1_SBo.tgz ... OK
Installing package xdg-dbus-proxy-0.1.4-x86_64-1_SBo.tgz ... OK
libwpe:
MD5SUM check for libwpe-1.16.0.tar.xz ... OK
Building package libwpe-1.16.0-x86_64-1_SBo.tgz ... OK
Installing package libwpe-1.16.0-x86_64-1_SBo.tgz ... OK
wpebackend-fdo:
MD5SUM check for wpebackend-fdo-1.14.2.tar.xz ... OK
Building package wpebackend-fdo-1.14.2-x86_64-1_SBo.tgz ... OK
Installing package wpebackend-fdo-1.14.2-x86_64-1_SBo.tgz ... OK
geoclue2:
MD5SUM check for geoclue-2.6.0.tar.bz2 ... OK
Building package geoclue2-2.6.0-x86_64-1_SBo.tgz ... OK
Installing package geoclue2-2.6.0-x86_64-1_SBo.tgz ... OK
bubblewrap:
MD5SUM check for bubblewrap-0.8.0.tar.xz ... OK
Building package bubblewrap-0.8.0-x86_64-1_SBo.tgz ... OK
Installing package bubblewrap-0.8.0-x86_64-1_SBo.tgz ... OK
webkit2gtk:
MD5SUM check for webkitgtk-2.44.1.tar.xz ... OK
Building package webkit2gtk-2.44.1-x86_64-1_SBo.tgz ... OK
Installing package webkit2gtk-2.44.1-x86_64-1_SBo.tgz ... OK
wxPython4:
MD5SUM check for wxPython-4.2.1.tar.gz ... OK
Building package wxPython4-4.2.1-x86_64-2_SBo.tgz ... OK
Installing package wxPython4-4.2.1-x86_64-2_SBo.tgz ... OK
unixODBC:
MD5SUM check for unixODBC-2.3.12.tar.gz ... OK
Building package unixODBC-2.3.12-x86_64-2_SBo.tgz ... OK
Installing package unixODBC-2.3.12-x86_64-2_SBo.tgz ... OK
ngspice:
MD5SUM check for ngspice-42.tar.gz ... OK
MD5SUM check for ngspice-42-manual.pdf ... OK
Building package ngspice-42-x86_64-1_SBo.tgz ... OK
Installing package ngspice-42-x86_64-1_SBo.tgz ... OK
glm:
MD5SUM check for glm-0.9.9.5.tar.gz ... OK
Building package glm-0.9.9.5-x86_64-1_SBo.tgz ... OK
Installing package glm-0.9.9.5-x86_64-1_SBo.tgz ... OK
VTK:
MD5SUM check for VTK-9.3.0.tar.gz ... OK
Building package VTK-9.3.0-x86_64-1_SBo.tgz ... OK
Installing package VTK-9.3.0-x86_64-1_SBo.tgz ... OK
OpenCASCADE:
MD5SUM check for opencascade-7.7.0.tgz ... OK
Building package OpenCASCADE-7.7.0-x86_64-3_SBo.tgz ... OK
Installing package OpenCASCADE-7.7.0-x86_64-3_SBo.tgz ... OK
kicad:
MD5SUM check for kicad-8.0.tar.bz2 ... FAILED!
Expected: 301a2f31b038a78cb75dd537275c0f9b
Found: 072e1b591c8df3855086f19ff3d826b5
Keeping the source and continuing.
Building package kicad-8.0-x86_64-1_SBo.tgz ... OK
Installing package kicad-8.0-x86_64-1_SBo.tgz ... OK
That wasn't my box. My box the default Slackware package on it:
[code
The REAL question is, why isn't python seeing the wxPython? How does it detect these things?
To answer your question, the "python" program looks in /usr/lib64/python$PYTHON_VERSION/ folder for it's modules. This means that you can have multiple python versions installed alongside each other, each with their own set of modules. This is because python's minor version keeps changing, so a module written for 3.9 may not work with 3.11.
This means that Pat's upgrade to 3.11 broke the entire python universe on Slackware, forcing everyone to go through and re-run the SlackBuild scripts for every single module. Reinstalling isn't enough. A 3rd party repo like alienbob's is going to lag for some time until he gets a chance to update everything. As others here have mentioned the solution is to rebuild the packages you need yourself or wait for the repo you use to catch up.
-- Found wxPython Phoenix 4.2.1/gtk3 (wxWidgets 3.2.2.1)
CMake Error at /usr/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find wxWidgets (missing: wxWidgets_LIBRARIES
wxWidgets_INCLUDE_DIRS) (Required is at least version "3.2.2.1")
Call Stack (most recent call first):
/usr/share/cmake-3.29/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
cmake/FindwxWidgets.cmake:987 (find_package_handle_standard_args)
CMakeLists.txt:1001 (find_package)
The part I don't understand:
Code:
Could NOT find wxWidgets (missing: wxWidgets_LIBRARIES
wxWidgets_INCLUDE_DIRS) (Required is at least version "3.2.2.1")
When it said (before that):
Code:
-- Found wxPython Phoenix 4.2.1/gtk3 (wxWidgets 3.2.2.1)
So after removing ALL of the python and wx packages and reinstalling them from -current/Alien/SBo. It still didn't work.
In the end, my issue was that I had AlienBOB's wxGTK3 3.2.1 package on the machine with the wxWidget 3.2.4 SBo package. It would 'see' the correct wxGTK3 version from the SBo but, it would try and load the wrong one from AlienBOB.
Got rid of the wxGTK3 3.2.1 package and now KiCAD builds.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.